0

iframeを使用してページの読み込み時間を調べようとしています。URLの配列があり、それをiframeの配列に入れてから、javascriptを使用して各iframeの読み込み時間を取得します。私の問題-私の時間値は配列ではないので、1つの値だけが表示されます(1番目のフレームの値が表示され、2番目にその上にある2番目のフレームの値に置き換えられます)。

   <html>
    <body>   
    <center>
    <?php 
    $url = array('example.com', 'example2.com');
    foreach($url as $i){ 
    ?>
    <iframe onload="pageloadingtime();" width="505" height="505" scrolling="no" security="restricted" src="<?php echo "http://www.".$i; ?> "></iframe>
    <?php
    } 
    ?>
    <div id="loadingtime"></div>
    </center>
    </body>
    <script type="text/javascript">    
    beforeload = (new Date()).getTime();
    function pageloadingtime()
    {
        afterload = (new Date()).getTime();
        secondes = (afterload-beforeload)/1000;
        document.getElementById("loadingtime").innerHTML = "<font color='red'>(Page took " + secondes + " seconds to load)</font>";
    }   
    </script>
    </html>

このコードでは、URLの配列($ url)を作成し、foreachサイクルを実行して、URLと同じ数のiframeを作成し、javascriptを使用してページの読み込み時間をカウントします。読み込み時間を取得したら、それを「loadingtime」divに入れます。しかし、私が言ったように、値の配列を配置する代わりに、1つの値のみを配置します。

これに変更しましたが、何も表示されなくなりました。

beforeload = (new Date()).getTime();
function pageloadingtime()
{
    var afterload = (new Date()).getTime();
    secondes = (afterload-beforeload)/1000;
    document.getElementById("loadingtime1").innerHTML += "<font color='red'>(Page took " + secondes + " seconds to load)</font><br>";
}
4

1 に答える 1

1

ステータスdivを上書きするのではなく、追加します。

document.getElementById("loadingtime").innerHTML += "<font color='red'>(Page took " + secondes + " seconds to load)</font><br>";

また、関数に対してローカルとして宣言afterLoadします。secondes

var afterload = (new Date()).getTime();
var secondes = (afterload-beforeload)/1000;
于 2013-02-19T05:14:56.263 に答える