PerformanceNavigationTiming - 提供了浏览器文档导航事件指标的方法和属性

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

PerformanceNavigationTiming 接口提供了用于存储和检索有关浏览器文档导航事件的指标的方法和属性。例如,此接口可用于确定加载或卸载文档需要多少时间。

属性

该接口通过如下限定和约束属性来扩展 PerformanceEntry 的属性,用于导航性能条目类型:

PerformanceEntry.entryType 只读

返回 "navigation".

PerformanceEntry.name 只读

返回文档的地址

PerformanceEntry.startTime 只读

返回值为 “0” 的 DOMHighResTimeStamp

PerformanceEntry.duration 只读

返回一个 timestamp 属性,即 PerformanceNavigationTiming.loadEventEndPerformanceEntry.startTime 属性之间的差值。

该接口还扩展了以下的 PerformanceResourceTiming 属性,用于导航性能条目类型,对它们进行如下限定和约束:

PerformanceResourceTiming.initiatorType只读

返回 “navigation”。

该接口还支持以下属性:

PerformanceNavigationTiming.domComplete 只读

一个 DOMHighResTimeStamp,表示浏览器将当前文档的就绪状态设置为 complete 的时间值。

PerformanceNavigationTiming.domContentLoadedEventEnd 只读

一个 DOMHighResTimeStamp,表示当前文档 DOMContentLoaded 事件完成之后的时间。

PerformanceNavigationTiming.domContentLoadedEventStart 只读

一个 DOMHighResTimeStamp,表示用户代理在当前文档触发 DOMContentLoaded 事件之前的时间。

PerformanceNavigationTiming.domInteractive 只读

一个 DOMHighResTimeStamp,表示用户代理将当前文档的准备就绪设置为 interactive 的时间。

PerformanceNavigationTiming.loadEventEnd 只读

一个 DOMHighResTimeStamp,表示当前文档的加载(load)事件完成的时间。

PerformanceNavigationTiming.loadEventStart 只读

一个 DOMHighResTimeStamp,表示触发当前文档的加载(load)事件之前的时间。

PerformanceNavigationTiming.redirectCount 只读

一个数字,表示在当前浏览上下文中的上次非重定向导航以来的重定向次数。

如果没有重定向,或者重定向是从另一个源发出的,并且该起点不允许将其计时信息公开给当前起点,则该值为 0

PerformanceNavigationTiming.requestStart 只读

一个 DOMHighResTimeStamp,表示用户代理从服务器,相关应用程序缓存或本地资源请求资源之前的时间。

PerformanceNavigationTiming.responseStart 只读

一个 DOMHighResTimeStamp,表示用户代理的 HTTP 解析器从相关应用程序缓存,本地资源或服务器接收到响应的第一个字节后的时间。

PerformanceNavigationTiming.type 只读

一个 string,表示导航的类型。必须为:“navigate”,“reload”,“back_forward” 或 “prerender”。

PerformanceNavigationTiming.unloadEventEnd 只读

一个 DOMHighResTimeStamp,表示用户代理程序完成前一文档的卸载(unload)事件后的时间。

PerformanceNavigationTiming.unloadEventStart 只读

一个 DOMHighResTimeStamp,表示用户代理程序完成前一文档的卸载(unload)事件时的时间。

方法

PerformanceNavigationTiming.toJSON()

返回一个 DOMString 对象,它是 PerformanceNavigationTiming 对象的 JSON 表示形式。

规范

规范 状态 备注
Navigation Timing Level 2
PerformanceNavigationTiming 的定义
工作草案 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持5712581 不支持44 不支持
domComplete571258 不支持44 不支持
domContentLoadedEventEnd571258 不支持44 不支持
domContentLoadedEventStart571258 不支持44 不支持
domInteractive571258 不支持44 不支持
loadEventEnd571258 不支持44 不支持
loadEventStart571258 不支持44 不支持
redirectCount571258 不支持44 不支持
toJSON57≤1858 不支持44 不支持
type571258 不支持44 不支持
unloadEventEnd571258 不支持44 不支持
unloadEventStart571258 不支持44 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持5757 未知581 未知43 不支持
domComplete5757 未知58 未知43 不支持
domContentLoadedEventEnd5757 未知58 未知43 不支持
domContentLoadedEventStart5757 未知58 未知43 不支持
domInteractive5757 未知58 未知43 不支持
loadEventEnd5757 未知58 未知43 不支持
loadEventStart5757 未知58 未知43 不支持
redirectCount5757 未知58 未知43 不支持
toJSON5757 未知58 未知43 不支持
type5757 未知58 未知43 不支持
unloadEventEnd5757 未知58 未知43 不支持
unloadEventStart5757 未知58 未知43 不支持

1. 您可以使用 dom.enable_performance_navigation_timing 首选项禁用此功能(请参见 bug 1403926)。

相关链接