0

我正在使用 Navigation Timing API 从页面获取加载事件。我在下面添加了 JS 的片段来输出信息。我注意到奇怪的一件事是时间比我检查控制台loadEventEnd的时间早回来。loadEventStart我认为这应该是不可能的。

var startTime = new Date().getTime();
// retrieve the performance object in a cross browser way. Check window.performance first.
window.performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance || {};
var timing = window.performance.timing || {};
var navigation = window.performance.navigation || {};

// if the Navigation Timing API is supported
if (window.performance && window.performance.timing) {
    pageRequestStart = timing.requestStart;
    pageResponseStart = timing.responseStart;
    pageResponseEnd = timing.responseEnd;
    pageLoadEventStart = timing.loadEventStart;
    pageLoadEventEnd = timing.loadEventEnd;
    pageLoadTime = timing.navigationStart;
}
var timingOutput =
    "requestStart: " + pageRequestStart + "\n"
    + "responseStart: " + pageResponseStart + "\n"
    + "responseEnd: " + pageResponseEnd + "\n"
    + "loadEventStart: " + pageLoadEventStart + "\n"
    + "loadEventEnd: " + pageLoadEventEnd + "\n"
    + "navigationStart: " + pageLoadTime;
console.log(timingOutput);
4

1 回答 1

1

虽然我不确定您的具体情况,但NavigationTiming API对于 IE、Chrome、Firefox 和 Opera 来说是相当新的。在开发规范和在浏览器中实现的过程中,由于浏览器之间的各种实现差异,看到了许多类似于您上面描述的小错误。

您看到的错误可能已在最近的浏览器版本中得到修复。如果您仍然在运行的浏览器上始终看到该问题,您可以尝试使用NavigationTiming 的 W3C webperf 测试用例来查看是否有任何故障。

于 2014-01-14T15:07:33.217 回答