2016-07-27 3 views
-1

IDを使用して同じドメインの別のページからHTMLブロックをレンダリングするページがあります。現在のコード:DOMレディの前にjQueryロード機能を使用する

<div id=”testdiv”></div> 
<script> 
jQuery(document).ready(function(){ 
    jQuery('#testdiv').load('/references/embed1.html #testdiv2'); 
}); 
</script> 

これはコンテンツを正しく読み込む一方で、ページ読み込みとjQueryコンテンツ読み込みの間に目に見える遅れがあります。 DIVの内容に応じて、時には完全な秒が表示されます。これは明らかに、DOM ReadyまでHTMLコンテンツを取得しようとしていないページが原因です。したがって、準備機能を削除しましたが、ロード機能は実行されません。代わりにiFrameを使用すると、ブラウザがコードを実行する際に読み込まれるように見えますが、特定のDIV IDのみを含む能力がなくなり、応答性にするのは難しくなります。 $ .ajaxを見ましたが、明らかにLoadは.ajaxを使用するため、違いがあるようには見えません。

簡単に言えば、jQuery、JavaScript、iFramesなどの方法を問わず、DOMを待つことなく別のページから特定のDIV IDを読み込むにはどうすればよいですか? 2番目の質問

おかげ

+0

簡単です...それとして**正確** 'jQueryの(ドキュメント).ready(関数()あなたのコードがある場合は、{'。それは*正常に動作する必要がありますを削除しますあなたの質問に*ありますが、最初にこのコンテンツを取得するためにajaxを使用する必要性を取り除く以外には、削除することができない遅延がある可能性があります。 –

+0

なぜ落選ですか?さらに、この投稿http://stackoverflow.com/questions/15107074/jquery-load-not-working同じ問題を解決し、解決策はDOMの準備ができています。 – user1754738

+1

それは正常に動作するはずです。そうでない場合これは、あなたの質問の例が実際に使用しているコードと一致しないことを意味します。 DOM要素に対するスクリプトの位置は非常に重要です。 –

答えて

-4

アヤックスは、インスタントではなく、あなたが何もそれを変更しません。したがって、常にいくつかの遅延があります。あなたは$(document).ready()の必要性を取り除くことによって遅延を減らすことができますが、私はまだそれがあなたが望んでいたことをするのに十分ではないと思われます。

$.get('page.html', function (result) { 
    // note, you may need to use `.filter` rather than `.find` depending on the structure of `result` 
    $('#target').html($($.parseHTML(result)).find('#target2')); 
}); 

または$(document).readyマイナスであるとして、あなたのコードを残して、ちょうどあなたの例のように、ターゲットのdivの後に移動します。

遅延を完全に除去する唯一の方法は、htmlをページサーバー側に直接挿入して$.ajaxを使用する必要性を取り除くことです。

-2

document readyは、ページ全体が読み込まれるまでトリガーされ、削除するだけで、#testdivがDOMでレンダリングされた後に​​が呼び出されます。 は、ここでは例

<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 

<div id="testdiv"></div> 
<div id="error"></div> 

<script> 
$("#testdiv").load("/references/embed1.html #testdiv2", function(response, status, xhr) { 
    alert("Triggered"); 
    if (status == "error") { 
    var msg = "Err trying to load "; 
    $("#error").html(msg + xhr.status + " " + xhr.statusText); 
    } 
}); 
</script> 

https://jsfiddle.net/Angel_xMu/rer3yuny/1/

関連する問題