PerformanceNavigationTiming - 提供了浏览器文档导航事件指标的方法和属性
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
PerformanceNavigationTiming 接口提供了用于存储和检索有关浏览器文档导航事件的指标的方法和属性。例如,此接口可用于确定加载或卸载文档需要多少时间。
属性
该接口通过如下限定和约束属性来扩展 PerformanceEntry 的属性,用于导航性能条目类型:
PerformanceEntry.entryType 只读
返回 "navigation".
PerformanceEntry.name 只读
返回文档的地址。
PerformanceEntry.startTime 只读
返回值为 “0” 的 DOMHighResTimeStamp。
PerformanceEntry.duration 只读
返回一个 timestamp 属性,即 PerformanceNavigationTiming.loadEventEnd 和 PerformanceEntry.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 的定义 |
工作草案 | 初始定义。 |
桌面浏览器兼容性
| 特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| 基础支持 | 57 | 12 | 581 | 不支持 | 44 | 不支持 |
domComplete | 57 | 12 | 58 | 不支持 | 44 | 不支持 |
domContentLoadedEventEnd | 57 | 12 | 58 | 不支持 | 44 | 不支持 |
domContentLoadedEventStart | 57 | 12 | 58 | 不支持 | 44 | 不支持 |
domInteractive | 57 | 12 | 58 | 不支持 | 44 | 不支持 |
loadEventEnd | 57 | 12 | 58 | 不支持 | 44 | 不支持 |
loadEventStart | 57 | 12 | 58 | 不支持 | 44 | 不支持 |
redirectCount | 57 | 12 | 58 | 不支持 | 44 | 不支持 |
toJSON | 57 | ≤18 | 58 | 不支持 | 44 | 不支持 |
type | 57 | 12 | 58 | 不支持 | 44 | 不支持 |
unloadEventEnd | 57 | 12 | 58 | 不支持 | 44 | 不支持 |
unloadEventStart | 57 | 12 | 58 | 不支持 | 44 | 不支持 |
移动浏览器兼容性
| 特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
|---|---|---|---|---|---|---|---|
| 基础支持 | 57 | 57 | 未知 | 581 | 未知 | 43 | 不支持 |
domComplete | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
domContentLoadedEventEnd | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
domContentLoadedEventStart | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
domInteractive | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
loadEventEnd | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
loadEventStart | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
redirectCount | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
toJSON | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
type | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
unloadEventEnd | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
unloadEventStart | 57 | 57 | 未知 | 58 | 未知 | 43 | 不支持 |
1. 您可以使用 dom.enable_performance_navigation_timing 首选项禁用此功能(请参见 bug 1403926)。