vue监听关闭页面 在关闭页面前发送axios请求 如何先发送请求 再关闭页面
现在碰到的问题就是关闭页面时axios请求总提交不了,请问有什么解决的方法么?
window.addEventListener('beforeunload', function() {
beforeUnloadTimestamp = new Date().getTime();
})
window.addEventListener('unload', function() {
beforeUnloadTimestamp = beforeUnloadTimestamp || 0;
localStorage.setItem('onload', new Date().getTime());
// 测试chrome和ie11 得出,chrome,IE11 // 刷新时 chrome >=11ms ,ie11 >=2ms 左右, 在关闭时,chrome间隔在 >=2ms,IE11 >=3000ms
if (isIE) {
if (new Date().getTime() - beforeUnloadTimestamp > 500) {
isClose = true;
}
} else {
if (new Date().getTime() - beforeUnloadTimestamp < 5) {
isClose = true;
}
}
if (isClose) {
axios.get('/au/logout').then(res => {
window.sessionStorage.clear();
});
localStorage.setItem('close', new Date().getTime());
}else{
localStorage.setItem('refresh', new Date().getTime());
}
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没有。请求是异步的,unload 不会等你请求返回才继续。
可以将ajax请求改成同步请求,请求返回后再关闭页面