代码之家  ›  专栏  ›  技术社区  ›  Tower

多个同时AJAX连接太多是否有问题?

  •  9
  • Tower  · 技术社区  · 15 年前

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

    然而,我有一种感觉(没有做任何实际的分析),池请求可以产生更好的性能。比如说,每次最多请求4次。

    所以,我的问题是,将AJAX请求放在一个池中有什么好处呢?还是可以同时处理多个请求,而不是让一个池一个接一个地处理它们呢?

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

    3 回复  |  直到 15 年前
        1
  •  15
  •   T.J. Crowder    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个。

    ……而且据你所知,其他现代浏览器也会这样做,或者可能会在下一个“点”版本中开始这样做。

    如果可以,一定要尽量减少长期开放连接的数量。当然,不要主动保持一个以上的连接打开很长时间。

    如果你只是做了很多单独的、快速的连接,有时它们会聚在一起,你可能想自己序列化它们,而不是依赖浏览器来完成。有一个表示需要完成的请求的对象队列,以及负责执行这些请求的代码(一次一个)。

        2
  •  9
  •   Wouter Dorgelo voy    15 年前

    too many 总是很糟糕。

    阅读有关AJAX优化的更多信息 in this article .

        3
  •  1
  •   MattOlivos    10 年前

    根据以上答案中列出的浏览器,是的。在某些情况下,如果它们没有按时间顺序排队发送请求,您可能会发现在某些场景中,某些返回信息可能会被混淆并显示在错误的元素中,以便加载ajax请求后返回信息。