判断浏览器刷新还是关闭并向后端发送数据navigator.sendBeacon

语法:
navigator.sendBeacon(url);
navigator.sendBeacon(url, data);

参数:
url 
表明 data 将要被发送到的网络地址

data 可选 
是将要发送的 ArrayBuffer、ArrayBufferView、Blob、DOMString、FormData 或 URLSearchParams 类型的数据

如何测试:
可以同时打开两个窗口,观察刷新和关闭页面时localStorage值得变化

let begin = 0;
window.addEventListener("unload", () => {
  const differ = new Date().getTime() - begin;
  window.localStorage.setItem('unload', differ);
  if(differ <= 5) {  // 判断是刷新还是关闭
    const formData = new FormData();
    formData.append("rtspUrl", this.locationUrl);
    navigator.sendBeacon("/video/end_kd", formData);
  }
});
window.addEventListener("beforeunload",()=>{
  begin = new Date().getTime();
  window.localStorage.setItem('beforeunload', begin);
})
刷新页面-时间差为11
关闭页面-时间差为2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容