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

瀏覽器相容性

另見