ReportingObserver - 用于收集和访问报告
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
ReportingObserver
是 Reporting 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 | - |
桌面浏览器兼容性
暂无兼容数据