利用 sendBeacon 发送统计信息
Posted 闲云野鹤的博客日志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用 sendBeacon 发送统计信息相关的知识,希望对你有一定的参考价值。
我们经常会在网站追踪用户的信息,比如记录用户的停留时间。
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); });
以上是关于利用 sendBeacon 发送统计信息的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用 'unload\navigator.sendBeacon' + 'GraphQL' 将数据发送到服务器?
关闭 Chrome 窗口未在卸载事件处理程序中使用 sendBeacon 发送数据