Open taoliujun opened 9 months ago
MDN: https://developer.mozilla.org/zh-CN/docs/Web/API/Beacon_API
Beacon用于发送请求到服务器,且不需要响应。浏览器会保证在页面卸载前,将请求运行完成。
通过POST发送少量数据到服务器。
navigator.sendBeacon(url, data);
示例:https://taoliujun.github.io/example/web-api/Beacon_API/index.html
manual
<button onclick="javascript:sendData('manual');">sendData</button>
hidden
document.addEventListener("visibilitychange", ()=> { if (document.visibilityState === "hidden") { sendData('hidden'); } });
3。 发送统计数据的函数:
let data = 0; function sendData(source) { data += 1; // getUrl用于获取服务端地址 navigator.sendBeacon(getUrl(), new URLSearchParams({ data, source })); }
body: [Object: null prototype] { data: '1', source: 'manual' } body: [Object: null prototype] { data: '2', source: 'hidden' }
特别适用于埋点统计。
Beacon
Beacon用于发送请求到服务器,且不需要响应。浏览器会保证在页面卸载前,将请求运行完成。
方法
sendBeacon
通过POST发送少量数据到服务器。
示例
示例:https://taoliujun.github.io/example/web-api/Beacon_API/index.html
manual
统计数据:hidden
统计数据:3。 发送统计数据的函数: