PerformanceNavigationTiming: activationStart 属性

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表格

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 的浏览器中加载。

另请参阅