利用 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 发送数据

Navigator.sendBeacon()

Web 关闭页面时发送 Ajax 请求 —— sendBeacon

使用sendBeacon进行前端数据上报

关闭页面时向后台发送消息