这个问题有点重复:Reliably complete Ajax request on page unload

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

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


它可以通过sendBeacon及时触发,但是我正在寻找一种与所有浏览器都兼容的解决方案,而sendBeacon却不是。

最佳答案

没什么好有很多相当棘手的解决方案(在MDN sendBeacon文章中提到了其中一些)。您唯一可以做的就是使用sendBeacon(如果存在),否则回退到其他方法。

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

09-20 03:54