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

最佳答案

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

}, 0);

关于html - 使用 HTML5 Navigation Timing API 时,navigationStart 时间设置为 0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12095276/

10-11 22:14
查看更多