PerformanceObserver

Baseline 广泛可用 *

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

* 此特性的某些部分可能存在不同级别的支持。

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

PerformanceObserver 接口用于观察性能测量事件,并在浏览器性能时间线记录新的性能条目时得到通知。

构造函数

PerformanceObserver()

创建并返回一个新的 PerformanceObserver 对象。

静态属性

PerformanceObserver.supportedEntryTypes 只读

返回用户代理支持的 entryType 值数组。

实例方法

PerformanceObserver.observe()

指定要观察的条目类型集合。当记录到指定 entryTypes 之一的性能条目时,将调用性能观察器的回调函数。

PerformanceObserver.disconnect()

停止性能观察器回调函数接收性能条目。

PerformanceObserver.takeRecords()

返回性能观察器中存储的性能条目列表,并清空它。

示例

创建 PerformanceObserver

以下示例创建一个 PerformanceObserver,用于监视“mark”(PerformanceMark)和“measure”(PerformanceMeasure)事件。perfObserver 回调函数提供了一个 listPerformanceObserverEntryList),允许您获取观察到的性能条目。

js
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-performanceobserver

浏览器兼容性

另见