0

我像这样加载我的框架:

$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 个 url 时的输出:

6.265sec 
6.671sec
8.905sec 
10.077sec
4

1 回答 1

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 相关联。

于 2013-04-08T06:08:06.537 回答