4

HTML5 Navigation Timing API を使用して、サイトでユーザーが認識したページの読み込み時間を測定しています。

次のコードを使用して、ページの読み込み時間を測定しています。

function recordLoadTime () {
/* Process load time using "Navigation Timing" */
if (typeof(window.performance) !== "undefined" && typeof(window.performance.timing) !== "undefined") {
    if (window.performance.timing.loadEventEnd > 0) {
        var time = window.performance.timing.loadEventEnd - window.performance.timing.navigationStart;
    } else {
        setTimeout(recordLoadTime, 1000);
    }
}
}

time変数は Cookie にも追加され、ユーザーによる後続のリクエストでサーバーに記録されます。

記録された時間が現在のエポック時間に非常に近い、つまりnavigationStart0 に設定されloadEventEndているがゼロ以外の値 (つまり現在のエポック時間)であるという問題に直面しています。

Chrome/11.0、Chrome/12.0、MSIE 7.0、MSIE 8.0、および MSIE 9.0 でこの動作を確認しました。

navigationStartが 0 より大きい場合にのみロード時間を記録するように上記のコードを変更することで、これを一時的に解決しました。ただし、提供されたすべてのページのロード時間を記録したいと考えています。

4

1 に答える 1

1
window.onload = function()
{
  setTimeout(function(){
  var t = performance.timing;

}, 0);
于 2012-12-12T13:39:15.803 に答える