1

各 iframe のロード時間を取得して、時間を表示しようとしています。これが私が現在持っているコードです(読み込み時間の計算なし):

<iframe id="1"  width="100" height="100" src=""></iframe>

<script type="text/javascript">
$(document).ready(function(){   
    var array = ['http://www.example1.com', 'http://www.example2.com', 'http://www.example3.com'];
    $('#1').on('load', function() {                 
       $('#1').attr('src', array.pop());             
    }).attr('src', array.pop());
});
</script>

配列から iframe にリンクを配置し、各 iframe を次々にロードします。

これは、以前に読み込み時間を取得する方法でした:

<script type="text/javascript">
beforeload = (new Date()).getTime();
function pageloadingtime(i)
{

    var afterload = (new Date()).getTime();
    var seconds = (afterload-beforeload)/1000;
    document.getElementById("loadingtime"+i).innerHTML = seconds;
}
</script>

この方法は、1つずつロードするのではなく、すべてのiframeを同時にロードしたため、うまくいきませんでした。

最初のコードで、iframe の読み込み時間をカウントして表示する 2 番目のコード メソッドを使用するにはどうすればよいですか?

4

1 に答える 1

0

これはどう:

$(document).ready(function(){   
var array = ['http://www.example1.com', 'http://www.example2.com', 'http://www.example3.com'];
var beforeLoad = (new Date()).getTime();
var loadTimes = [];
$('#1').on('load', function() {
   loadTimes.push((new Date()).getTime());                  
   $('#1').attr('src', array.pop());
    if (array.length === 0) { 
        $.each(loadTimes, function(index, value) {
           alert(value - beforeLoad); 
        });
    }
}).attr('src', array.pop());
});

補足 現在、ほとんどの Web サイトは iframe を許可していないため、チェックしている Web サイトに iframe でアクセスできることを確認する必要があります。iframe なしで負荷を測定し、javascript を使用したい場合は、おそらく$.getリクエストを使用して同じことを模倣できます。

于 2013-02-24T14:34:10.760 に答える