有太多的多个同时AJAX连接坏了吗?

时间:2010-11-21 13:42:59

标签: javascript ajax performance networking xmlhttprequest

我正在编写一个相当大的基于JavaScript的应用程序,有时甚至会有八(8)个AJAX请求同时发生。这是IE6中的一个问题,因为它会杀死其余的请求,我知道,但是这个应用程序是针对现代浏览器的,因此,IE6不是问题。

但是,我有一种感觉(没有进行任何实际的分析),池化请求可以产生更好的性能。比如说,一次最多4个请求。

所以,我的问题是,对于汇集AJAX请求是否有任何好处,或者与拥有一个接一个地处理它们的池相比,是否可以同时进行多个请求?

我意识到这可能取决于浏览器和互联网连接,但我不确定。

2 个答案:

答案 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