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

2024-08-13  本文已影响0人  Neuro_annie
语法:
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
上一篇下一篇

猜你喜欢

热点阅读