可以使用unload事件可靠地触发ajax请求吗?

可以使用unload事件可靠地触发ajax请求吗?,第1张

可以使用unload事件可靠地触发ajax请求吗?

如果您的服务器足够快地响应,则此方法相当可靠。确实需要提防的事情。如果关闭浏览器并在unload事件上发送AJAX请求,则很有可能在窗口对象被销毁之前不会及时从服务器返回响应。在这种情况下(至少使用IE),发生的事情是它将孤立您的连接对象,直到达到连接超时后才正确终止它。如果您的服务器没有打开连接保持活动状态,则在关闭2个窗口(同时仍打开另一个窗口)之后,您将耗尽与服务器的打开连接(对于IE6-7,对于IE8-6窗口)并且您将无法打开您的网站,直到达到连接超时为止。

我遇到了这样的情况:打开打开要卸载的AJAX请求的d出窗口之前,它非常可靠,但是受到上述发行版的困扰,我花了很长时间来跟踪它下来了解发生了什么。之后,我要做的是确保打开的窗口具有与调用服务器相同的代码,并在每次卸载时检查打开器并在其中运行代码(如果存在)。

看来,如果关闭最后一个浏览器窗口,则IE会正确破坏连接,但是如果打开另一个窗口,则不会。

PS只是对上面的答案发表评论,AJAX并不是真正异步的。至少它的JS实现不是。发送请求后,您的JS代码仍将等待服务器的响应。它不会阻止您的代码执行,但是由于服务器可能需要一段时间才能响应(或者对于Windows终止IE窗口对象足够长的时间),因此您可能并且很可能会遇到上述问题。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4960592.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存