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 |
浏览器兼容性
加载中…