我们经常会在网站追踪用户的信息,比如记录用户的停留时间。
window.addEventListener("unload", () => { // sendHTTP });
但是如果发送是XHR请求的话。页面会阻塞。google了发现有一个api是可以支持的
大致是说 navigator.sendBeacon
可以用来发送一些小量的数据,特别适合统计场景,且这个请求是异步的,不受浏览器行为限制:即使浏览器关闭请求也能照样发出。
var data = new FormData(); navigator.sendBeacon('path/to/beacon', data);
window.addEventListener("unload", () => { let data = new FormData(); data.append("type", "event"); data.append("start_time", start); data.append("end_time", getTimestamp()); data.append("url", currentUrl); navigator.sendBeacon("/visit.php", data); });