PerformanceNavigationTiming:notRestoredReasons 属性
notRestoredReasons
是 PerformanceNavigationTiming
接口的只读属性,它返回一个 NotRestoredReasons
对象,该对象提供有关在导航时阻止当前文档使用后退/前进缓存 (bfcache) 的原因的报告数据。
值
当关联的 PerformanceNavigationTiming
对象表示历史导航时,notRestoredReasons
返回一个 NotRestoredReasons
对象。
当 PerformanceNavigationTiming
对象不表示历史导航时,notRestoredReasons
将返回 null
。这对于确定 bfcache 是否与特定导航无关(而不是 notRestoredReasons
不受支持,在这种情况下它将返回 undefined
)非常有用。
注意: 即使导航类型报告为后退/前进导航,notRestoredReasons
也可能返回 null
。这些情况包括在新标签页中复制后退/前进导航以及在浏览器重新启动后还原后退/前进导航标签。在这些情况下,某些浏览器会从原始标签复制导航类型,但由于这些实际上不是后退/前进导航,因此 notRestoredReasons
返回 null
。
示例
可以使用 Performance.getEntriesByType()
或 PerformanceObserver
从性能时间线获取 PerformanceNavigationTiming
数据。
例如,您可以调用以下函数以返回性能时间线中当前存在的所有 PerformanceNavigationTiming
对象并记录其 notRestoredReasons
function returnNRR() {
const navEntries = performance.getEntriesByType("navigation");
for (let i = 0; i < navEntries.length; i++) {
console.log(`Navigation entry ${i}`);
let navEntry = navEntries[i];
console.log(navEntry.notRestoredReasons);
}
}
PerformanceNavigationTiming.notRestoredReasons
属性返回一个具有以下结构的对象,该对象提供了阻止当前文档使用 bfcache 的原因。在此示例中,顶级框架没有嵌入的子 <iframe>
。
{
children: [],
id: null,
name: null,
reasons: [
{ reason: "unload-listener" }
],
src: "",
url: "example.com",
}
规范
规范 |
---|
导航计时级别 2 # dom-performancenavigationtiming-notrestoredreasons |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。