乐趣区

关于前端:关闭页面时怎样向后台发送消息

在用户刷新或敞开页面的时候,须要发送给后端一条申请传递某些信息,失常应用页面卸载的事件监听或 vue 生命周期钩子函数,如:

window.addEventListener('beforeunload',()=> {// do something})

但测试发现:

  • 刷新页面时根本满足要求
  • 敞开页面时,后盾接管不到申请

搜寻相干信息发现,对于当初的 Chrome 来说,在页面导航来到或者被用户敞开时,不容许发送同步的 XHR 申请,波及到的事件有 beforeunload、unload、pagehide 和 visibilitychange。

navigator.sendBeacon()

起初通过搜寻发现有个接口能够实现,就是 navigator.sendBeacon()

语法

navigator.sendBeacon(url,data)

参数

  • url表明 data 将要被发送到的网络地址。
  • data参数是将要发送的数据

返回值

当用户代理胜利把数据退出传输队列时,sendBeacon()办法将返回true,否则返回fasle

退出移动版