PerformanceEntry: duration 属性

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本使用。自 2017 年 9 月以来,它已在浏览器中提供。

注意:此功能在 Web Workers 中可用。

只读的 duration 属性返回一个 DOMHighResTimeStamp,表示 性能条目 的持续时间。此属性的含义取决于该条目的 entryType 的值。

一个 DOMHighResTimeStamp,表示 性能条目 的持续时间。如果持续时间的概念不适用于特定的性能指标,则返回 0

此属性的含义取决于此性能条目的 entryType 的值。

event

从事件的 startTime 到下一个渲染帧的时间(四舍五入到最近的 8 毫秒)。

first-input

从第一个输入事件的 startTime 到下一个渲染帧的时间(四舍五入到最近的 8 毫秒)。

longtask

任务开始和结束之间的时间间隔,精度为 1 毫秒。

measure

度量(measure)的持续时间。

该条目的 loadEventEnd 属性与 startTime 属性之间的差值。

resource

该条目的 responseEnd 值减去该条目的 startTime 值。

对于以下条目类型,duration 不适用,在这种情况下,其值始终为 0

  • element
  • largest-contentful-paint
  • layout-shift
  • mark
  • paint
  • taskattribution
  • visibility-state

示例

使用 duration 属性

以下示例记录所有观察到的 duration 大于 0 的性能条目。

js
function perfObserver(list, observer) {
  list.getEntries().forEach((entry) => {
    if (entry.duration > 0) {
      console.log(`${entry.name}'s duration: ${entry.duration}`);
    }
  });
}
const observer = new PerformanceObserver(perfObserver);
observer.observe({ entryTypes: ["measure", "mark", "resource"] });

规范

规范
性能时间线
# dom-performanceentry-duration

浏览器兼容性