2

html のチャンクを div にロードしようとしていますが、html 文字列内の JavaScript が約 50% の時間しかロードされないという問題が発生しています。

jQuery の: $(div).html(htmlString); を使用して html を必要な div にロードできることを認識しています。問題の原因となっている html はドキュメントの準備ができているブロックで行われており、.html(..) を使用するときにドキュメントの準備ができているコードが実行されるかどうかに興味があります。 jquery-ui js) ではないかもしれません??

<html>
   <head>
     <script src="..../jquery-ui.min.js"></script>
     <script type="text/javascript"> $(function() {  $("#tabs").tabs(); }); </script>
   </head>
   <body>
      <div>......</div>
   </body>
</html>

追加された html にタイムアウトを適用して、jquery-ui スクリプトをロードする時間を追加しようとしました。

$(function(){  setTimeout(function(){ $("#tabs").tabs(); }, 300); });

ただし、必要な JavaScript をロードするのに必要な時間はさまざまであるため、これはまだ 100% 信頼できるわけではありません。jquery ui スクリプトがロードされるまで、ロードされた html のドキュメントの準備完了状態が待機していることを確認する方法はありますか?

4

2 に答える 2

2

スクリプトと js ファイルは常に本文の最後に配置する必要があります。その理由は、body がロードされる前に head に入れられるものはすべて完了する必要があるため、そこに javascript を入れることは一般的に悪い考えです。安全を確保して、これを一番下に追加してください。

また、遅延はここでのチャンスを改善しません。

<html>
  <head>
     <title>hey you</title>
  </head>
  <body>
    <div>......</div>
   <script src="..../jquery-ui.min.js"></script>
   <script type="text/javascript">
       $(function(){  
            $("#tabs").tabs(); 
       }); 
   </script>
  </body>
</html>
于 2012-07-16T16:02:45.810 に答える
0

この問題を発見した John Doe のこの質問への投稿は、答えを得るのに役立ちました - JavaScript Load Order

jquery-ui.min.js は、インサイト スクリプトがページのどこにあるか (</body>タグの先頭または直前) に関係なく、インサイト スクリプトの後に読み込まれていました。私がやったことは、属性を使用してjquery uiのチェックを適用し、スクリプトタグに$.ui追加することですasync

<script async src=".../jquery-ui.min.js"></script>

jquery ui が読み込まれると、$("#tabs).tabs();呼び出しを続行できました。

コメントと投稿をありがとう!

于 2012-07-17T13:13:53.130 に答える