PerformanceNavigationTiming: domContentLoadedEventStart 属性

Baseline 已广泛支持

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

domContentLoadedEventStart 只读属性返回一个 DOMHighResTimeStamp,表示当前文档的 DOMContentLoaded 事件处理程序开始执行之前的那个时刻。

通常,框架和库会在 DOMContentLoaded 事件触发后开始执行其代码。我们可以使用 domContentLoadedEventStartdomContentLoadedEventEnd 属性来计算这段时间的长度。

一个 DOMHighResTimeStamp,表示当前文档的 DOMContentLoaded 事件处理程序开始执行之前的那个时刻。

示例

测量 DOMContentLoaded 事件处理程序的时间

domContentLoadedEventStart 属性可用于测量处理 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-domcontentloadedeventstart

浏览器兼容性

另见