建構函式
ReportingObserver()-
建立一個新的
ReportingObserver物件例項,該例項可用於收集和訪問報告。
例項屬性
此介面沒有定義任何屬性。
例項方法
ReportingObserver.disconnect()-
停止之前已開始觀察的報告觀察器收集報告。
ReportingObserver.observe()-
指示報告觀察器開始在其報告佇列中收集報告。
ReportingObserver.takeRecords()-
返回觀察器報告佇列中當前包含的報告列表,並清空佇列。
事件
此介面沒有觸發的事件。
示例
在我們 deprecation_report.html 示例中,我們建立了一個簡單的報告觀察者來觀察我們網頁上已棄用功能的使用情況。
js
const options = {
types: ["deprecation"],
buffered: true,
};
const observer = new ReportingObserver((reports, observer) => {
reportBtn.onclick = () => displayReports(reports);
}, options);
然後,我們告訴它使用 ReportingObserver.observe() 開始觀察報告;這告訴觀察者開始在其報告佇列中收集報告,並執行建構函式中指定的函式。
js
observer.observe();
在示例的後面,我們故意使用了已棄用的 MediaDevices.getUserMedia() 版本。
js
if (navigator.mozGetUserMedia) {
navigator.mozGetUserMedia(constraints, success, failure);
} else {
navigator.getUserMedia(constraints, success, failure);
}
這會生成一個棄用報告;由於我們在 ReportingObserver() 建構函式中設定了事件處理程式,我們現在可以單擊按鈕來顯示報告詳細資訊。

注意:如果您檢視 完整的原始碼,您會發現我們實際上呼叫了兩次已棄用的 getUserMedia() 方法。在第一次呼叫之後,我們呼叫了 ReportingObserver.takeRecords(),它返回第一個生成的報告並清空佇列。因此,當按下按鈕時,只列出了第二個報告。
規範
| 規範 |
|---|
| Reporting API # interface-reporting-observer |
瀏覽器相容性
載入中…