我试图通过使用iframe找出页面加载时间。我有一个网址数组,我放入一个iframe数组,然后我通过使用javascript获得每个iframe的加载时间。我的问题 - 我的时间值不是一个数组,所以它只显示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数组($ url),运行foreach循环,制作尽可能多的iframe,就像有url一样,然后使用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>";
}
答案 0 :(得分: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;