阻止页面卸载,直到ajax被触发

时间:2017-06-07 23:19:36

标签: javascript ajax browser cross-browser

此问题的重复类型:Reliably complete Ajax request on page unload

基本上我需要在关闭页面之前发出网络请求。我不需要响应值。但是,简单地将它放在我的beforeunload处理程序中是行不通的:

window.addEventListener('beforeunload', () => {
  // send ajax
}

它与sendBeacon及时成功触发,但我正在寻找与所有浏览器兼容的解决方案,而sendBeacon不是。

1 个答案:

答案 0 :(得分:0)

没什么好看的。有一堆相当hacky解决方案(其中一些在MDN sendBeacon文章中提到)。你唯一能做的就是使用sendBeacon(如果它存在),否则回退到其他选择。

如果不支持sendBeacon,这是一个快速搜索的polyfill,它会执行同步ajax请求:https://github.com/miguelmota/Navigator.sendBeacon