PerformanceObserver:observe() 方法
PerformanceObserver
接口的 observe()
方法用于指定要观察的一组性能条目类型。
有关条目类型的列表,请参阅 PerformanceEntry.entryType
,有关用户代理支持的条目类型的列表,请参阅 PerformanceObserver.supportedEntryTypes
。
当记录匹配的性能条目时,将调用性能观察器的回调函数(在创建 PerformanceObserver
时设置)。
语法
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"
条目类型。
const observer = new PerformanceObserver((list, obj) => {
list.getEntries().forEach((entry) => {
// Process "mark" and "measure" events
});
});
observer.observe({ entryTypes: ["mark", "measure"] });
观察单个性能条目类型
以下示例检索缓冲事件并订阅资源计时事件 (PerformanceResourceTiming
) 的新事件,使用 buffered
和 type
配置选项。每当需要将观察器配置为使用 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 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。