PerformanceNavigationTiming: domInteractive 屬性

Baseline 已廣泛支援

此功能已成熟,並且適用於多種裝置和瀏覽器版本。自 2021 年 10 月以來,它已在所有瀏覽器中可用。

domInteractive 只讀屬性返回一個 DOMHighResTimeStamp,表示使用者代理將文件的 readyState 設定為 "interactive" 之前的確切時間。

注意:此屬性不是 可互動時間 (TTI)。此屬性指的是 DOM 構建完成並且 JavaScript 可以與之互動的時間。另請參閱 Document.readyStateinteractive 狀態,它與此屬性相對應。

除非您的網站擁有非常大的 HTML 源來構建文件物件模型 (DOM),否則測量 DOM 處理時間可能並不重要。

如果沒有解析器阻塞的 JavaScript,那麼 domInteractive 之後會立即觸發 DOMContentLoaded 事件(有關時間戳,請參閱 domContentLoadedEventStart)。

一個 DOMHighResTimeStamp,表示使用者代理將文件的 readyState 設定為 "interactive" 之前的確切時間。

示例

記錄 DOM 互動時間

domInteractive 屬性可用於記錄 DOM 構建已完成並且可以與之互動的時間。

使用 PerformanceObserver 的示例,它會在瀏覽器效能時間線中記錄新的 navigation 效能條目時通知您。使用 buffered 選項可以訪問觀察者建立之前的條目。

js
const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    console.log(
      `${entry.name}: domInteractive time: ${entry.domInteractive}ms`,
    );
  });
});

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

使用 Performance.getEntriesByType() 的示例,它僅顯示在呼叫方法時瀏覽器效能時間線中存在的 navigation 效能條目。

js
const entries = performance.getEntriesByType("navigation");
entries.forEach((entry) => {
  console.log(`${entry.name}: domInteractive time: ${entry.domInteractive}ms`);
});

規範

規範
導航計時 Level 2
# dom-performancenavigationtiming-dominteractive

瀏覽器相容性

另見