如何一次执行几个Ajax请求

joh*_*ohn 7 javascript jquery

我不确定它在JavaScript中是否可行,所以我想我会问.:)

假设我们有100个要求要完成并希望加快速度.

我想做的是:

  • 创建一个循环,启动前5个ajax调用
  • 等到它们全部返回(成功 - 调用函数来更新dom /错误) - 不确定如何,可能使用全局计数器?
  • 重复,直到完成所有请求.

考虑到浏览器JavaScript不支持线程,我们可以"利用"这个async功能吗?你认为它会起作用,或者在JavaScript中存在固有的问题吗?

Fru*_*nsi 2

我想说,Dancrumb 的评论是这个问题的“答案”,但无论如何......

当前的浏览器确实限制 HTTP 请求,因此您甚至可以轻松地立即启动所有 100 个请求,浏览器将尽快发送这些请求,但仅限于相当数量的并行请求。

因此,立即启动它们并信任浏览器。

但是,这种情况将来可能会发生变化(随着最终用户互联网带宽的增加和技术的进步,浏览器发送的并行请求数量也会增加)。

编辑:您还应该思考并阅读 javascript 上下文中“异步”的含义。这里的异步只是意味着您放弃对系统其他部分的控制。所以“发送”异步请求只是意味着,您告诉浏览器这样做!您无法控制浏览器,您只需告诉它发送该请求,然后将结果通知我