PerformanceObserver: observe() 方法
注意:此功能在 Web Workers 中可用。
PerformanceObserver
接口的 observe()
方法用于指定要观察的性能条目类型集合。
有关条目类型的列表,请参阅 PerformanceEntry.entryType
,有关用户代理支持的条目类型的列表,请参阅 PerformanceObserver.supportedEntryTypes
。
当记录到匹配的性能条目时,将在创建 PerformanceObserver
时设置的性能观察者的回调函数会被调用。
语法
observe(options)
参数
options
-
一个具有以下可能成员的对象
buffered
-
一个布尔标志,用于指示是否应将缓冲的条目排队到观察者的缓冲区中。只能与
type
选项一起使用。 durationThreshold
-
一个
DOMHighResTimeStamp
,定义PerformanceEventTiming
条目的阈值。默认为 104ms,并四舍五入到最接近的 8ms。最低可能阈值为 16ms。不能与entryTypes
选项一起使用。 entryTypes
-
一个字符串数组,每个字符串指定一个要观察的性能条目类型。不能与
type
、buffered
或durationThreshold
选项一起使用。有关有效性能条目类型名称的列表,请参阅
PerformanceEntry.entryType
。不识别的类型将被忽略,但浏览器可能会向控制台输出警告消息以帮助开发人员调试其代码。如果没有找到有效的类型,observe()
将不起作用。 type
-
一个单独的字符串,指定要观察的单个性能条目类型。不能与
entryTypes
选项一起使用。
返回值
无(undefined
)。
示例
观察多个性能条目类型
此示例创建了一个 PerformanceObserver
,并使用 observe()
方法中提供的 entryTypes
选项来观察 "mark"
和 "measure"
条目类型。
const observer = new PerformanceObserver((list, obj) => {
list.getEntries().forEach((entry) => {
// Process "mark" and "measure" events
});
});
observer.observe({ entryTypes: ["mark", "measure"] });
观察单个性能条目类型
以下示例使用 buffered
和 type
配置选项检索已缓冲的事件并订阅资源计时事件(PerformanceResourceTiming
)的新事件。每当需要配置观察者使用 buffered
或 durationThreshold
选项时,请使用 type
而非 entryType
。否则,收集多种性能条目类型将无法正常工作。
const observer = new PerformanceObserver((list, obj) => {
list.getEntries().forEach((entry) => {
// Process "resource" events
});
});
observer.observe({ type: "resource", buffered: true });
规范
规范 |
---|
性能时间线 # dom-performanceobserver-observe |
浏览器兼容性
加载中…