Beacon API
Beacon API 用於向 Web 伺服器傳送非同步且非阻塞的請求。該請求不期望得到響應。與使用 XMLHttpRequest 或 Fetch API 發出的請求不同,瀏覽器保證在頁面解除安裝之前發起信標請求,並確保其完成。
Beacon API 的主要用例是將客戶端事件或會話資料等分析資訊傳送到伺服器。過去,網站一直使用 XMLHttpRequest 來實現此目的,但在某些情況下(例如,當頁面即將解除安裝時),瀏覽器並不保證會發送這些非同步請求。為了解決這個問題,網站不得不採用各種技術,例如使請求同步,這會嚴重影響響應速度。由於信標請求既是非同步的又是保證傳送的,因此它們結合了良好的效能特徵和可靠性。
有關此 API 的動機和用法的更多詳細資訊,請參閱 navigator.sendBeacon() 方法的文件。
注意: 此 API 在 Web Workers 中不可用(未透過 WorkerNavigator 暴露)。
介面
此 API 定義了一個單一方法:navigator.sendBeacon()。
該方法接受兩個引數:URL 和要傳送到請求中的資料。資料引數是可選的,其型別可以是字串、ArrayBuffer、TypedArray、DataView、ReadableStream、Blob、FormData 物件或 URLSearchParams 物件。如果瀏覽器成功將請求加入佇列以進行傳輸,則該方法返回 true;否則,它返回 false。
規範
| 規範 |
|---|
| Beacon # sendbeacon-method |
瀏覽器相容性
載入中…