PerformanceObserver: метод observe()
Базовая реализация Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2015 года.
Примечание: Эта функция доступна в Web Workers.
Метод observe() интерфейса PerformanceObserver используется для указания набора типов записей производительности, которые необходимо наблюдать.
См. 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.
Возвращаемое значение
None (undefined).
Примеры
Наблюдение за несколькими типами записей производительности
В этом примере создается PerformanceObserver и наблюдаются типы записей "mark" и "measure" как указано в опции entryTypes метода observe().
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 });
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
observe |
52 | 79 | 57 | 39 | 11 | 52 | 57 | 41 | 11 | 6.0 | 52 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver/observe