ReportingObserver - 用于收集和访问报告

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

ReportingObserverReporting API 的接口,可用于收集和访问报告。

构造函数

ReportingObserver()

创建一个新的 ReportingObserver 对象实例,该实例可用于收集和访问报告。

属性

该接口未定义任何属性。

方法

ReportingObserver.disconnect()

停止以前开始观察的报告。

ReportingObserver.observe()

指示报告观察者开始在其报告队列中收集报告。

ReportingObserver.takeRecords()

返回包含在观察者报告队列中的当前报告列表,并清空队列。

事件

此接口没有触发任何事件。

实例

在我们的 deprecation_report.html 实例中,我们创建了一个简单的报告观察器,以观察网页上废弃使用功能的使用情况:

let options = {
  types: ['deprecation'],
  buffered: true
}

let observer = new ReportingObserver(function(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(),它将返回第一个生成的报告并清空队列。因此,当按下按钮时,仅列出第二个报告。

规范

规范 状态 备注
Unknown
ReportingObserver 的定义
Unknown -

桌面浏览器兼容性

暂无兼容数据

相关链接