Spec-Zone.ru › Web APIs

Отчёт

Ограниченная доступность

Эта функция не является Базовой, так как она не работает во всех широко используемых браузерах.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Потоках выполнения JavaScript.

Интерфейс Report API отчётов представляет собой отдельный отчёт.

К отчётам можно получить доступ несколькими способами:

  • С помощью метода ReportingObserver.takeRecords() — он возвращает все отчёты в очереди наблюдателя и очищает очередь.
  • С помощью параметра reports функции обратного вызова, переданной в конструктор ReportingObserver() при создании нового экземпляра наблюдателя. Он содержит список отчётов, которые в данный момент находятся в очереди наблюдателя.
  • Отправляя запросы к конечным точкам, определённым через заголовок HTTP Reporting-Endpoints.

Свойства экземпляра

Report.body Только для чтения

Тело отчёта, которое является объектом ReportBody, содержащим подробную информацию об отчёте.

Report.type Только для чтения

Тип созданного отчёта, например, deprecation или intervention.

Report.url Только для чтения

URL документа, который сгенерировал отчёт.

Методы экземпляра

У этого интерфейса нет определённых методов.

События

У этого интерфейса нет событий, которые срабатывают на нём.

Примеры

В нашем примере 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) => {
    let listItem = document.createElement("li");
    let textNode = document.createTextNode(
      `Report ${i + 1}, type: ${report.type}`,
    );
    listItem.appendChild(textNode);
    let innerList = document.createElement("ul");
    listItem.appendChild(innerList);
    list.appendChild(listItem);

    for (const key in report.body) {
      const innerListItem = document.createElement("li");
      const keyValue = report.body[key];
      innerListItem.textContent = `${key}: ${keyValue}`;
      innerList.appendChild(innerListItem);
    }
  });
}

Параметр reports содержит массив всех отчётов в очереди наблюдателя. Мы перебираем каждый отчёт с помощью цикла forEach(), затем перебираем каждый элемент в теле отчёта с помощью структуры for...in, отображая каждую пару ключ/значение в элементе списка.

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

Спецификация
Reporting API
# dom-report

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
Report 69 79
65Поддержка потоков введена в версии 77
56 16.4 69 Нет 48 16.4 10.0 69
body 69 79 65 56 16.4 69 Нет 48 16.4 10.0 69
toJSON 69 79 77 56 16.4 69 Нет 48 16.4 10.0 69
type 69 79 65 56 16.4 69 Нет 48 16.4 10.0 69
url 69 79 65 56 16.4 69 Нет 48 16.4 10.0 69

См. также

  • API отчётов
  • Report-To HTTP заголовок

© 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/Report

Spec-Zone.ru

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