0

txt ファイルから iframe に URL を配置し、各ソースの読み込み時間をチェックするスクリプト ウィッチを取得しました。txt ファイルに 4 つの URL がある場合、3 つの結果が得られますが、1 つの結果は常に短すぎます (0,016 秒ほどでフレームが読み込まれ、他の読み込みには 1 ~ 4 秒かかります)。リストから他の URL を削除し、悪い値を与える URL だけを残してスクリプトを実行すると、通常の値が返されます (読み込みに数秒かかります)。

スクリプトが話しているのは次のとおりです。

<script type="text/javascript">
   $.get("imones.txt", function (data) { 
       var array = data.split(/\r\n|\r|\n/); 
       var beforeloadingtime = (new Date()).getTime();
       var beforeTime = []; 
       beforeTime[0] = beforeloadingtime; 
       $.each(array, function (index, value) { 
           var jsonnuorodos = "http://anyorigin.com/get?url=" + array[index] + "&callback=?";
           $.getJSON(jsonnuorodos, function (data) { 
               var iframe = $("#frame_id")[0];
               var doc = iframe.document;
               if (iframe.contentDocument) { 
                   doc = iframe.contentDocument;
               } else if (iframe.contentWindow) {
                   doc = iframe.contentWindow.document;
               }
               doc.open();
               doc.writeln(data.contents); 
               doc.close(); 
               var loadingtime = (new Date()).getTime();
               beforeTime.push(loadingtime); 
               for (i = 0; i < array.length; i++) { 
                   var result; 
                   result = (beforeTime[i + 1] - beforeTime[i]) / 1000; 
                   $("#loadingtimediv" + i).html(result); 
               }
           });
       });
   });
</script>

複数の URL があるときにスクリプトを実行すると、この不正確な結果が得られるのはなぜですか?

編集: 私のスクリプトは、次の URL を追加する前に 1 つの URL が完全に読み込まれるのを実際には待機していないと思います。これが誤った結果を得る理由でしょうか?

4

1 に答える 1

1

結果はおそらく正確です。通常、ブラウザーは複数のリソースを同時にダウンロードします。ファイルが順番に、または要求した順序で読み込まれると想定する理由はありません。(Web ページを表示するためにダウンロードする必要があるさまざまなファイルを想像してみてください: CSS、JS、画像、フレーム...)

確認したい場合は、ブラウザにネットワーク デバッグ機能がある可能性があります。たとえば、Chrome 開発者ツールには、サーバーからの要求時間と応答時間を示すネットワーク タブがあります。

または、1 回のダウンロードと前回のダウンロードの差ではなく、beforeloadingtime と各ダウンロード完了時間の差をログに記録してみてください。

于 2013-03-04T06:35:22.030 に答える