PerformanceNavigationTiming: domInteractive 属性

domInteractive 只读属性返回一个 DOMHighResTimeStamp,表示用户代理将文档的 readyState 设置为 "interactive" 之前的时刻。

注意:此属性不是 交互时间 (TTI)。此属性指的是 DOM 构造完成并且可以从 JavaScript 与其交互的时间。另请参阅 Document.readyStateinteractive 状态,它对应于此属性。

除非您的网站具有非常大的 HTML 源代码来构建文档对象模型,否则衡量 DOM 处理时间可能无关紧要。

如果没有解析器阻塞的 JavaScript,则 DOMContentLoaded 事件(请参阅 domContentLoadedEventStart 以获取时间戳)将在 domInteractive 之后立即触发。

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

规范

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

浏览器兼容性

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

另请参阅