我正在使用 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 时记录加载时间。但我希望记录所有服务页面的加载时间。