PerformanceNavigationTiming:domContentLoadedEventStart 属性

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`,
  );
});

规范

规范
导航计时级别 2
# dom-performancenavigationtiming-domcontentloadedeventstart

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅