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 にも追加され、ユーザーによる後続のリクエストでサーバーに記録されます。
記録された時間が現在のエポック時間に非常に近い、つまりnavigationStart
0 に設定されloadEventEnd
ているがゼロ以外の値 (つまり現在のエポック時間)であるという問題に直面しています。
Chrome/11.0、Chrome/12.0、MSIE 7.0、MSIE 8.0、および MSIE 9.0 でこの動作を確認しました。
navigationStart
が 0 より大きい場合にのみロード時間を記録するように上記のコードを変更することで、これを一時的に解決しました。ただし、提供されたすべてのページのロード時間を記録したいと考えています。