PerformanceObserver:observe() 方法

PerformanceObserver 接口的 observe() 方法用于指定要观察的一组性能条目类型。

有关条目类型的列表,请参阅 PerformanceEntry.entryType,有关用户代理支持的条目类型的列表,请参阅 PerformanceObserver.supportedEntryTypes

当记录匹配的性能条目时,将调用性能观察器的回调函数(在创建 PerformanceObserver 时设置)。

语法

js
observe(options)

参数

options

具有以下可能成员的对象

buffered

一个布尔标志,指示是否应将缓冲的条目排队到观察者的缓冲区中。必须仅与“type”选项一起使用。

durationThreshold

一个 DOMHighResTimeStamp,定义 PerformanceEventTiming 条目的阈值。默认为 104 毫秒,并四舍五入到最接近的 8 毫秒。最低可能的阈值为 16 毫秒。不能与 entryTypes 选项一起使用。

entryTypes

一个字符串数组,每个字符串指定一个要观察的性能条目类型。不能与“type”、“buffered”或“durationThreshold”选项一起使用。

有关有效性能条目类型名称的列表,请参阅 PerformanceEntry.entryType。无法识别的类型将被忽略,尽管浏览器可能会向控制台输出警告消息以帮助开发人员调试其代码。如果未找到任何有效类型,则 observe() 不会有任何效果。

type

一个指定要观察的单个性能条目类型的字符串。不能与 entryTypes 选项一起使用。

返回值

无 (undefined)。

示例

观察多个性能条目类型

此示例创建一个 PerformanceObserver 并根据 observe() 方法中给出的 entryTypes 选项观察 "mark""measure" 条目类型。

js
const observer = new PerformanceObserver((list, obj) => {
  list.getEntries().forEach((entry) => {
    // Process "mark" and "measure" events
  });
});
observer.observe({ entryTypes: ["mark", "measure"] });

观察单个性能条目类型

以下示例检索缓冲事件并订阅资源计时事件 (PerformanceResourceTiming) 的新事件,使用 bufferedtype 配置选项。每当需要将观察器配置为使用 buffereddurationThreshold 选项时,请使用 type 而不是 entryType。否则,收集多种类型的性能条目类型将不起作用。

js
const observer = new PerformanceObserver((list, obj) => {
  list.getEntries().forEach((entry) => {
    // Process "resource" events
  });
});
observer.observe({ type: "resource", buffered: true });

规范

规范
性能时间线
# dom-performanceobserver-observe

浏览器兼容性

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