PerformanceEntry

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

PerformanceEntry 对象封装了浏览器性能时间轴中的单个性能指标。

Performance API 提供了内置的指标,这些指标是 PerformanceEntry 的专用子类。这包括资源加载、事件计时、首次输入延迟 (FID) 等条目。

还可以在应用程序中的明确点处调用 Performance.mark()Performance.measure() 方法来创建性能条目。这允许您将自己的指标添加到性能时间轴中。

PerformanceEntry 实例将始终是以下子类之一

实例属性

PerformanceEntry.name 只读

表示性能条目的名称的字符串。该值取决于子类型。

PerformanceEntry.entryType 只读

表示性能指标类型的字符串。例如,当使用 PerformanceMark 时为“mark”。

PerformanceEntry.startTime 只读

一个DOMHighResTimeStamp,表示性能指标的开始时间。

PerformanceEntry.duration 只读

一个DOMHighResTimeStamp,表示性能条目的持续时间。

实例方法

PerformanceEntry.toJSON()

返回 PerformanceEntry 对象的 JSON 表示形式。

示例

处理性能条目

以下示例创建了类型为 PerformanceMarkPerformanceMeasurePerformanceEntry 对象。PerformanceMarkPerformanceMeasure 子类继承了 PerformanceEntrydurationentryTypenamestartTime 属性,并将其设置为相应的值。

js
// Place at a location in the code that starts login
performance.mark("login-started");

// Place at a location in the code that finishes login
performance.mark("login-finished");

// Measure login duration
performance.measure("login-duration", "login-started", "login-finished");

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

规范

规范
性能时间轴
# dom-performanceentry

浏览器兼容性

BCD 表格仅在浏览器中加载