我正在尝试获取每个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>
这个方法对我来说不起作用,因为它同时加载了所有的iframe,而不是一个一个地加载。
如何在第一段代码中使用计算和显示iframe加载时间的第二代码方法?
答案 0 :(得分: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());
});
旁注
您必须确保可以访问iframe正在检查的网站,因为现在大多数网站都禁止使用iframe。
如果您仍想测量没有iframe的加载并使用javascript,您可以使用$.get
请求来模仿同样的事情。