2013-02-19 137 views
0

我想通过使用iframe找出页面加载时间。我有一个网址数组,我把它放入一个iframe数组中,然后通过使用javascript获得每个iframe的加载时间。我的问题 - 我的时间值不是一个数组,所以它只显示1个值(它显示的是第一帧的值,然后第二帧将其替换为第二帧的值)。Javascript函数只返回1个值而不是数组数组

<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($网址)的阵列,运行一个foreach循环使尽可能多的I帧的有网址,然后使用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>"; 
} 

回答

1

追加到状态的div而不是覆盖它:

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

此外,声明afterLoadsecondes作为本地的功能:

var afterload = (new Date()).getTime(); 
var secondes = (afterload-beforeload)/1000; 
+0

我改变了代码,但它没有显示ng现在任何值,我eddited我的帖子,因为我不能在这里写代码 – user1894929 2013-02-19 05:24:13

+0

你的脚本sholud之前/身体,而不是之后。也许是这样吗? – bfavaretto 2013-02-19 05:28:02