我正在编写一个相当大的基于JavaScript的应用程序,有时甚至会有八(8)个AJAX请求同时发生。这是IE6中的一个问题,因为它会杀死其余的请求,我知道,但是这个应用程序是针对现代浏览器的,因此,IE6不是问题。
但是,我有一种感觉(没有进行任何实际的分析),池化请求可以产生更好的性能。比如说,一次最多4个请求。
所以,我的问题是,对于汇集AJAX请求是否有任何好处,或者与拥有一个接一个地处理它们的池相比,是否可以同时进行多个请求?
我意识到这可能取决于浏览器和互联网连接,但我不确定。
答案 0 :(得分:15)
IE6不是你唯一的问题;其他浏览器也限制了对同一服务器的并发请求数。 Here's a good roundup,其中表示在撰写时默认为:
Browser HTTP/1.1 HTTP/1.0 ------- -------- -------- IE 6,7 2 4 IE 8 6 6 Firefox 2 2 8 Firefox 3 6 6 Safari 3,4 4 4 Chrome 1,2 6 ? Chrome 3 4 4 Opera 9.63 4 4 Opera 10.00alpha 4 4
除此之外,该文章还有两个重要的引用:
可以重新配置浏览器以使用不同的限制。
和
请注意,对于拨号连接上的用户,IE8会自动为每台服务器恢复2个连接。
...而且就你所知,其他现代浏览器都可以,或者可以通过下一个“点”版本开始这样做。
如果可以的话,一定要尽量将长期开放连接的数量保持在最低限度。当然不要长时间保持多个连接打开。
如果你只是做了很多个人的,快速的连接,有时候他们聚在一起,你可能想要自己序列化它们,而不是依靠浏览器来完成它。有一个表示需要完成的请求的对象队列,以及负责执行它们的代码(一次一个)。
答案 1 :(得分:9)
too many
总是很糟糕。
详细了解AJAX优化in this article。