使用HTML5 Navigation Timing API时,navigationStart时间设置为0

时间:2012-08-23 15:35:53

标签: html5 navigation-timing-api

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

1 个答案:

答案 0 :(得分:1)

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

}, 0);