信标 API

**Beacon** API 用于向 Web 服务器发送异步且非阻塞的请求。该请求不期望响应。与使用 XMLHttpRequestFetch API 发出的请求不同,浏览器保证在页面卸载之前启动信标请求并将其运行到完成。

信标 API 的主要用例是将分析数据(例如客户端事件或会话数据)发送到服务器。从历史上看,网站已使用 XMLHttpRequest 来实现此目的,但浏览器在某些情况下不保证发送这些异步请求(例如,如果页面即将卸载)。为了解决这个问题,网站采用了各种技术,例如使请求同步,但这会对响应能力产生不良影响。由于信标请求既是异步的,又保证会被发送,因此它们兼具良好的性能特征和可靠性。

有关此 API 的动机和用法的更多详细信息,请参阅 navigator.sendBeacon() 方法的文档。

**注意:**此 API *不可用* 于 Web Workers(通过 WorkerNavigator 未公开)。

接口

此 API 定义了一个方法:navigator.sendBeacon()

该方法接受两个参数,即 URL 和要发送到请求中的数据。数据参数是可选的,其类型可以是字符串、ArrayBufferTypedArrayDataViewReadableStreamBlobFormData 对象或 URLSearchParams 对象。如果浏览器成功将请求排队以进行传递,则该方法返回“true”;否则,返回“false”。

规范

规范
信标
# sendbeacon-方法

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅