СообщениеОЗаменеФункциональности
Примечание: Эта функция доступна в Потоках Web Workers.
Экспериментальная функция: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости с браузерами.
Интерфейс DeprecationReportBody API отчётов представляет собой тело отчёта о замене функциональности.
Отчёт о замене функциональности генерируется, когда устаревшая функция (например, устаревший метод API) используется на документе, наблюдаемом ReportingObserver. Помимо поддержки данного API, получение полезных предупреждений об устаревших функциях зависит от добавления таких предупреждений поставщиками браузеров для устаревших функций.
Конструктор
Экземпляр DeprecationReportBody возвращается в качестве значения Report.body, когда Report.Type имеет значение deprecation. Интерфейс не имеет конструктора.
Свойства экземпляра
Этот интерфейс также наследует свойства от ReportBody.
-
DeprecationReportBody.idЭкспериментальная -
Строка, представляющая собой устаревшую функцию или API, например
NavigatorGetUserMedia. Это можно использовать для группировки отчетов по устаревшей функции. -
DeprecationReportBody.anticipatedRemovalЭкспериментальная -
Dateобъект (отображается как строка), представляющий собой дату предполагаемого удаления функции из текущего браузера. Если дата неизвестна, это свойство вернётnull. -
DeprecationReportBody.messageЭкспериментальная -
Строка, содержащая удобочитаемое описание замены функциональности, включая информацию, например, о том, какая новая функция её заменила, если таковая имеется. Обычно она соответствует сообщению, которое браузер отобразит в консоли DevTools при использовании устаревшей функции, если оно доступно.
-
DeprecationReportBody.sourceFileЭкспериментальная -
Строка, содержащая путь к исходному файлу, где использовалась устаревшая функция, если известен, или
nullв противном случае. -
DeprecationReportBody.lineNumberЭкспериментальная -
Число, представляющее строку в исходном файле, где использовалась устаревшая функция, если известно, или
nullв противном случае. -
DeprecationReportBody.columnNumberЭкспериментальная -
Число, представляющее столбец в исходном файле, где использовалась устаревшая функция, если известно, или
nullв противном случае.
Методы экземпляра
Этот интерфейс также наследует методы от ReportBody.
-
DeprecationReportBody.toJSON()Экспериментальная -
Сериализатор, который возвращает JSON-представление объекта
InterventionReportBody.
Примеры
В нашем примере deprecation_report.html мы создаём простой наблюдатель отчётов, чтобы наблюдать за использованием устаревших функций на нашей веб-странице:
const options = {
types: ["deprecation"],
buffered: true,
};
const observer = new ReportingObserver((reports, observer) => {
reportBtn.onclick = () => displayReports(reports);
}, options);
Затем мы говорим ему начать наблюдение за отчётами, используя ReportingObserver.observe(); это сообщает наблюдателю о начале сбора отчётов в его очереди отчётов и выполняет функцию обратного вызова, указанную в конструкторе:
observer.observe();
Благодаря обработчику событий, который мы настроили внутри конструктора ReportingObserver(), мы теперь можем нажать кнопку, чтобы отобразить подробности отчёта.
Подробности отчёта отображаются с помощью функции displayReports(), которая принимает параметр reports обратного вызова наблюдателя как свой параметр:
function displayReports(reports) {
const outputElem = document.querySelector(".output");
const list = document.createElement("ul");
outputElem.appendChild(list);
reports.forEach((report, i) => {
const listItem = document.createElement("li");
const textNode = document.createTextNode(
`Report ${i + 1}, type: ${report.type}`,
);
listItem.appendChild(textNode);
const innerList = document.createElement("ul");
listItem.appendChild(innerList);
list.appendChild(listItem);
for (const [key, value] of Object.entries(report.body)) {
const innerListItem = document.createElement("li");
innerListItem.textContent = `${key}: ${value}`;
innerList.appendChild(innerListItem);
}
});
}
Параметр reports содержит массив всех отчётов в очереди отчётов наблюдателя. Мы перебираем каждый отчёт, используя простой цикл for, затем перебираем каждый элемент в теле отчёта (экземпляр DeprecationReportBody ), используя структуру for...in, отображая каждую пару ключ/значение внутри элемента списка.
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
DeprecationReportBody |
69 | 79 | 65Не поддерживается в потоках |
56 | Нет | 69 | Нет | 48 | Нет | 10.0 | 69 |
anticipatedRemoval |
69 | 79 | 65 | 56 | Нет | 69 | Нет | 48 | Нет | 10.0 | 69 |
columnNumber |
69 | 79 | 65 | 56 | Нет | 69 | Нет | 48 | Нет | 10.0 | 69 |
id |
69 | 79 | 65 | 56 | Нет | 69 | Нет | 48 | Нет | 10.0 | 69 |
lineNumber |
69 | 79 | 65 | 56 | Нет | 69 | Нет | 48 | Нет | 10.0 | 69 |
message |
69 | 79 | 65 | 56 | Нет | 69 | Нет | 48 | Нет | 10.0 | 69 |
sourceFile |
69 | 79 | 65 | 56 | Нет | 69 | Нет | 48 | Нет | 10.0 | 69 |
toJSON |
69 | 79 | Нет | 56 | Нет | 69 | Нет | 48 | Нет | 10.0 | 69 |
См. также
END_OF_DOCUMENT_MARKER
© 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/DeprecationReportBody