PerformanceObserver: observe() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流瀏覽器均已支援。

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

PerformanceObserver 介面的 observe() 方法用於指定要觀察的效能條目型別集合。

有關條目型別的列表,請參閱 PerformanceEntry.entryType,有關使用者代理支援的條目型別的列表,請參閱 PerformanceObserver.supportedEntryTypes

當記錄到匹配的效能條目時,將在建立 PerformanceObserver 時設定的效能觀察者的回撥函式會被呼叫。

語法

js
observe(options)

引數

options

一個具有以下可能成員的物件

buffered

一個布林標誌,用於指示是否應將緩衝的條目排隊到觀察者的緩衝區中。只能與 type 選項一起使用。

durationThreshold

一個 DOMHighResTimeStamp,定義 PerformanceEventTiming 條目的閾值。預設為 104ms,並四捨五入到最接近的 8ms。最低可能閾值為 16ms。不能與 entryTypes 選項一起使用。

entryTypes

一個字串陣列,每個字串指定一個要觀察的效能條目型別。不能與 typebuffereddurationThreshold 選項一起使用。

有關有效效能條目型別名稱的列表,請參閱 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"] });

觀察單個性能條目型別

以下示例使用 bufferedtype 配置選項檢索已緩衝的事件並訂閱資源計時事件(PerformanceResourceTiming)的新事件。每當需要配置觀察者使用 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

瀏覽器相容性