我像这样加载我的框架:
$url = array();
$url[] = 'url1.com';
$url[] = 'url2.com';
echo "<div id='content'> </div>";
foreach($url as $u){
echo '<div class="frame_container">
<iframe onload="time_after_frame_loaded();" width="200" height="200" id="myiframe" src="http://www.'.$u.'"></iframe>
<div class="loadingtime"></div>
</div>';
}
onload
事件会在帧加载后获取时间值:
function time_after_frame_loaded(){
frame_loaded = (new Date()).getTime();
//console.log(frame_loaded);
}
如何计算每帧开始加载前的时间?
编辑:
<script type="text/javascript">
function time_after_frame_loaded(begin_time) {
var result = 0; //trying to reset the value for each frame
var frame_loaded = (new Date()).getTime();
// console.log("Begin: " + begin_time + ", Loaded: " + frame_loaded);
result = (frame_loaded - begin_time)/1000;
console.log(result + "sec");
}
</script>
加载4个网址时输出:
6.265sec
6.671sec
8.905sec
10.077sec
答案 0 :(得分:1)
使用此PHP:
$i = 0;
foreach($url as $u){
echo '<div class="frame_container">
<script type="text/javascript">
(function () {
var iframe = document.createElement("iframe");
iframe.width = "200";
iframe.height = "200";
iframe.id = "myiframe' . $i . '";
var begin_time = (new Date()).getTime();
iframe.onload = function () {
time_after_frame_loaded(begin_time);
};
iframe.src = "http://www.' . $u . '";
document.body.appendChild(iframe);
})();
</script>
<div class="loadingtime"></div>
</div>';
$i++;
}
这个Javascript:
function time_after_frame_loaded(begin_time) {
var frame_loaded = (new Date()).getTime();
console.log("Begin: " + begin_time + ", Loaded: " + frame_loaded);
}
我不确定这是最有效的方法,但它应该得到正确的“开始”时间并将其与每个iframe相关联。