0

我正在尝试使用 iframe 找出页面加载时间。我有一个 url 数组,我将其放入一个 iframe 数组中,然后我使用 javascript 获取每个 iframe 的加载时间。我的问题 - 我的时间值不是一个数组,所以它只显示 1 个值(它显示第 1 帧的值,然后在第二帧上用第 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 我计算页面加载时间。获得加载时间后,我将其放入“加载时间”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>";

此外,将afterLoadand声明secondes为函数的本地:

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