gpt4 book ai didi

ajax - 同时触发超过 4 个异步 XmlHttpRequest 时 IE8 挂起

转载 作者:行者123 更新时间:2023-12-01 12:01:35 25 4
gpt4 key购买 nike

for (var i = 0; i < 5; ++i) {
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
xhr.open('GET', '/Test/LongOperation?p=' + new Date());
xhr.send('');
}

这只是一个演示(不是实时代码),但它说明了核心问题。 LongOperation是一种在 10 秒后返回结果的方法。

问题:

  1. 为什么在执行上述代码片段后用户试图离开页面时 IE8(可能还有其他 IE)会挂起? FireFox/Safari 取消这些请求并允许导航到另一个页面。如果替换 'i < 5''i < 4'那么IE就不会挂了。

  2. 如何解决这种丑陋的 IE 行为?当浏览器突然挂起时,用户会非常沮丧。

最佳答案

大多数浏览器对任何给定服务器都有 4 个连接的内置限制。解决此“问题”的一种方法可能是对带外 XML 请求使用不同的主机名 - 您的用户请求将转到主要主机,而 AJAX 请求可以转到第二个服务器。

关于ajax - 同时触发超过 4 个异步 XmlHttpRequest 时 IE8 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/862166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com