onunload方法里面使用异步XHR的话,callback会执行吗?

窗口关闭以后,会自动执行onunload方法,现在想在onunload里面加个异步更新处理,不知道可行吗?
网上找资料,有些人说因为窗口已经关闭了,没法执行ajax返回的结果(错误/正确)?是这样的吗

阅读 2.5k
3 个回答

谢谢一楼朋友的回复。查找各种文档得到下面结论。
1.unload发送的ajax请求是有发出的动作的,但是因为浏览器会kill所有处理,所以请求可能到了服务器,也可能到不了。
2.callback是肯定不会执行的。

还有一种场景,在onUnloa里面执行删除indexedDB操作

const onUnLoad = () => {
  console.log('----onUnLoad---')
  localforage
    .removeItem(SIMULATION_RESULT)
    .then(() => {
      alert('success')
      console.log('00000000')
    })
    .catch(e => {
      console.log('error', e)
    })
}

刷新的时候会执行----onUnLoad---
但是不会真正删除数据。

关闭页面的时候两者都会执行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏