如果我在$http
函数中有一个单一的XHR(在我的情况下,是一个AngularJS window.onbeforeunload
的形式),例如在标签关闭之前将未保存的工作保存到服务器,它似乎点火了OK (至少从我在Chrome和Firefox的测试中测试过。)
但是如果我在while / for循环中启动了许多XHR(不是异步链接),那么只有第一个XHR会在大部分时间触发,有时会触发两个或更多......随着稀有度的增加。什么是奇怪的是所有XHR发送代码打印到控制台之前和之后的日志。
这就像浏览器准备运行所有代码,但实际上并没有执行所有操作(完成XHR)。
有没有办法确保onbeforeunload
成功发送所有XHR?即使我将所有呼叫都合并为一个,是否有任何保证可以发送?或者我的观察只是一些种族条件侥幸?