PerformanceNavigationTiming: domContentLoadedEventEnd 属性

Baseline 已广泛支持

此功能已成熟,并且适用于多种设备和浏览器版本。自 2021 年 10 月以来,它已在所有浏览器中可用。

domContentLoadedEventEnd 只读属性返回一个 DOMHighResTimeStamp,表示当前文档的 DOMContentLoaded 事件处理程序完成后的即时时间。

通常,框架和库会在开始运行代码之前等待 DOMContentLoaded 事件。我们可以使用 domContentLoadedEventEnddomContentLoadedEventStart 属性来计算这段时间需要多久。

一个 DOMHighResTimeStamp,表示当前文档的 DOMContentLoaded 事件处理程序完成后的即时时间。

示例

测量 DOMContentLoaded 事件处理程序时间

domContentLoadedEventEnd 属性可用于测量处理 DOMContentLoaded 事件处理程序所需的时间。

使用 PerformanceObserver 的示例,它会在浏览器性能时间线中记录新的 navigation 性能条目时通知您。使用 buffered 选项可以访问观察者创建之前的条目。

js
const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    const domContentLoadedTime =
      entry.domContentLoadedEventEnd - entry.domContentLoadedEventStart;
    console.log(
      `${entry.name}: DOMContentLoaded processing time: ${domContentLoadedTime}ms`,
    );
  });
});

observer.observe({ type: "navigation", buffered: true });

使用 Performance.getEntriesByType() 的示例,它仅显示在调用方法时浏览器性能时间线中存在的 navigation 性能条目。

js
const entries = performance.getEntriesByType("navigation");
entries.forEach((entry) => {
  const domContentLoadedTime =
    entry.domContentLoadedEventEnd - entry.domContentLoadedEventStart;
  console.log(
    `${entry.name}: DOMContentLoaded processing time: ${domContentLoadedTime}ms`,
  );
});

规范

规范
导航计时 Level 2
# dom-performancenavigationtiming-domcontentloadedeventend

浏览器兼容性

另见