有一个非常简单的函数来检查iframe的加载时间:
function loadTime() {
var beforeLoad = (new Date()).getTime();
$('#loading_iframe').one('load', function () {
var afterLoad = (new Date()).getTime();
var result = (afterLoad - beforeLoad) / 1000;
$("#loadingtime").html(result + " sec");
});
}
我像这样加载我的框架(where $url = some link)):
<iframe style="visibility:hidden;display:none" id="loading_iframe" src="<?php echo $url;?>"></iframe>
之后,我把我的结果放入div:
<div id="loadingtime"></div>
这工作非常好为一个单一的url,我希望它的url数组的工作。这是我想要的结构(这是可能的吗?):
foreach ($url_array as $i)
iframe gets loaded with url
javascript that gets the loadtime of the url
passint the javascript value to php varriable
write the php varriable to a database
close foreach and begin the next loop
是的,你想做的是完全可能的。
如果你正在为iframe使用ID,你应该考虑到这些ID对于每个iframe应该是唯一的,否则当你创建具有相同ID的新iframe时,你会丢失对旧iframe的引用。
您还可以创建一个全局load
事件监听器和一个对象,该对象使用URL作为唯一键将数据映射到每个IFrame。
为此,创建一个带有URL键和对象的Object,作为存储start-time和加载处理程序的值。每次触发全局load
监听器时,您检查目标是否为IFrame,如果是,则使用其src
在该映射中查找,获得开始时间,计算您可以存储在该对象中的持续时间。
祝你好运!