ReportingObserver
Ограниченная доступность
Эта функция не относится к Baseline, так как не работает во всех широко используемых браузерах.
Примечание: Эта функция доступна в Потоках веб-работы.
Интерфейс ReportingObserver API отчётности позволяет собирать и получать доступ к отчётам.
Конструктор
ReportingObserver()-
Создаёт новый экземпляр объекта
ReportingObserver, который можно использовать для сбора и доступа к отчётам.
Свойства экземпляра
Для этого интерфейса не определено никаких свойств.
Методы экземпляра
ReportingObserver.disconnect()-
Прекращает сбор отчётов наблюдателем отчётности, который ранее начал наблюдение.
ReportingObserver.observe()-
Указывает наблюдателю отчётности начать сбор отчётов в его очереди отчётов.
ReportingObserver.takeRecords()-
Возвращает текущий список отчётов, содержащихся в очереди отчётов наблюдателя, и очищает очередь.
События
Для этого интерфейса не определено никаких событий.
Примеры
В нашем примере deprecation_report.html мы создаём простой наблюдатель отчётности для наблюдения за использованием устаревших функций на нашей веб-странице:
const options = {
types: ["deprecation"],
buffered: true,
};
const observer = new ReportingObserver((reports, observer) => {
reportBtn.onclick = () => displayReports(reports);
}, options);
Затем мы говорим ему начать наблюдение за отчётами, используя ReportingObserver.observe(); это говорит наблюдателю начать сбор отчётов в его очереди отчётов и выполняет функцию обратного вызова, указанную внутри конструктора:
observer.observe();
Позже в примере мы намеренно используем устаревшую версию MediaDevices.getUserMedia():
if (navigator.mozGetUserMedia) {
navigator.mozGetUserMedia(constraints, success, failure);
} else {
navigator.getUserMedia(constraints, success, failure);
}
Это приводит к генерации отчёта об устаревании; благодаря обработчику событий, который мы настроили внутри конструктора ReportingObserver(), мы теперь можем нажать кнопку, чтобы отобразить подробности отчёта.
Примечание: Если вы посмотрите на полный исходный код, вы заметите, что мы фактически вызываем устаревшее метод getUserMedia() дважды. После первого вызова мы вызываем ReportingObserver.takeRecords(), который возвращает первый сгенерированный отчёт и очищает очередь. По этой причине, когда нажимается кнопка, отображается только второй отчёт.
Спецификации
| Спецификация |
|---|
| Reporting API # interface-reporting-observer |
Совместимость с браузерами
| Рабочий стол | Мобильное устройство | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
ReportingObserver |
69 | 79 | 65 | 56 | 16.4 | 69 | Нет | 48 | 16.4 | 10.0 | 69 |
ReportingObserver |
69 | 79 | 65 | 56 | 16.4 | 69 | Нет | 48 | 16.4 | 10.0 | 69 |
disconnect |
69 | 79 | 65 | 56 | 16.4 | 69 | Нет | 48 | 16.4 | 10.0 | 69 |
observe |
69 | 79 | 65 | 56 | 16.4 | 69 | Нет | 48 | 16.4 | 10.0 | 69 |
takeRecords |
69 | 79 | 65 | 56 | 16.4 | 69 | Нет | 48 | 16.4 | 10.0 | 69 |
worker_support |
84 | 84 | 77 | 70 | Нет | 84 | Нет | Нет | Нет | 14.0 | 84 |
См. также
© 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/ReportingObserver