共计 441 个字符,预计需要花费 2 分钟才能阅读完成。
在用户刷新或敞开页面的时候,须要发送给后端一条申请传递某些信息,失常应用页面卸载的事件监听或 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
。
正文完