浏览器批量巨大的ajax请求吗?

时间:2014-07-04 14:59:40

标签: javascript jquery ajax

我想知道浏览器是否批量向单个服务器发出大量的ajax请求。我正在使用jQuery并发送约。一次向服务器发出300个请求。当我查看firebug控制台时,看起来好像请求是分批进行的。这是由jQuery还是浏览器完成的?

编辑: 据我所知,浏览器对服务器的最大同时连接数有限制。问题是我可以依靠浏览器来处理大量请求,或者我要实现一些队列来处理请求(一次说5个请求)

3 个答案:

答案 0 :(得分:3)

浏览器无法将AJAX请求分组到单个"批处理"请求,服务器不知道如何处理它。它肯定会缓冲请求,因此一次只处理两个左右的请求。

  

我使用jQuery并发送约。一次向服务器发出300个请求。

我希望你不打算在制作中这样做。以编程方式批量处理许多事情可能会更好。

答案 1 :(得分:1)

浏览器会将请求限制为有限数量的并行请求,因此可能会出现批量发生的请求。加勒特在这里更好地解释了这一点How to perform Ajax requests, a few at a time

虽然使用JQuery也可以帮助自己使用称为$ .when()的“未来”方法来批量处理请求,这种方法需要解决一些承诺,在这种情况下你的ajax请求 见Guillaume86在这里解释了jQuery.when understanding

很抱歉,我没有直接回答,但这个主题在我提到的两个问题上得到了很好的解释。欢呼声。

虽然从技术上讲,我回答你的问题,实际上正如亚历山大所说,最好尽量减少客户/服务器之间的互动。

答案 2 :(得分:0)

您可以通过设置标头Connection: Keep-Alive;更快地提出请求。然后浏览器不需要为每个请求创建新连接。

但是,制作支持某种批量的服务器API仍然会更好。

e.g。对于JSON-RPC:

{method:'batch.process', params: [{method:'...'},{method:'...'},...]}
相关问题