Spec-Zone.ru › Web APIs

СообщениеОЗаменеФункциональности

Примечание: Эта функция доступна в Потоках 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(), мы теперь можем нажать кнопку, чтобы отобразить подробности отчёта.

image of a jolly bearded man with various stats displayed below it about a deprecated feature

Подробности отчёта отображаются с помощью функции 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, отображая каждую пару ключ/значение внутри элемента списка.

Спецификации

Спецификация
Отчеты о замене функциональности
# deprecationreportbody

Совместимость с браузерами

Рабочие столы Мобильные устройства
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

См. также

  • API отчётов
  • API отчётов
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API