PerformanceNavigationTiming: activationStart 属性
值
一个 DOMHighResTimeStamp
,以毫秒为单位表示文档预渲染开始到激活之间的时间。
如果页面尚未预渲染或仍在预渲染,则该值为 0
。
示例
检测预渲染的页面
当激活预渲染的文档时,activationStart
将设置为当前时间。以下函数可以检查页面是否 prerendering
或已预渲染
js
function pagePrerendered() {
return (
document.prerendering ||
self.performance?.getEntriesByType?.("navigation")[0]?.activationStart > 0
);
}
衡量用户感知的性能里程碑
对于预渲染的页面,页面可能在实际导航到之前很久就已经创建。在预渲染页面上使用 Performance API 时,务必将返回的值与 activationStart
进行比较,以避免误导性的测量结果。
js
// Time to when activation occurred
let activationStart =
performance.getEntriesByType("navigation")[0].activationStart;
// Time to first paint
let firstPaint = performance.getEntriesByName("first-paint")[0].startTime;
// Time to first contentful paint
let firstContentfulPaint = performance.getEntriesByName(
"first-contentful-paint",
)[0].startTime;
console.log("time to first paint: " + (firstPaint - activationStart));
console.log(
"time to first-contentful-paint: " + (firstContentfulPaint - activationStart),
);
规范
规范 |
---|
预渲染改进 # dom-performancenavigationtiming-activationstart |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。