javascript - 并行或串行组合多个 AJAX 调用哪个更好?

标签 javascript ajax

我正在开发一个单页应用程序,它向服务器发送多个 AJAX 请求。

系统采用轮询方式工作,因为一些数据请求可能需要大约 10-20 分钟的时间来计算。

  • 客户端向服务器请求数据
  • 服务器分发一个job-id
  • 客户端每隔几秒向服务器询问一次结果

轮询算法会随着时间的推移降低轮询频率,以 10 秒的间隔停止。

但是当客户端在短时间内发送不同的数据请求时,他最终会得到大约 10-20 个 job-id 并开始轮询所有这些。

简单地这样做并让浏览器并行处理这些请求是否更好,还是我应该安排每个请求并序列化它们?

将它们序列化会带来性能优势吗?

最佳答案

如果每个初始请求都返回一个唯一的 ID,并且每个页面都有一个唯一的用户 ID,那么您可以轮询每个请求的信息。

在 JSON 中,我会返回任何已完成请求的结果,以及尚未完成的请求的当前状态,例如是否已开始处理,可能还有完成百分比,或者有多少请求在前面该请求的。

这将简化工作,因为您不会进行多次轮询调用,而只会进行一次,返回一个复杂的结果以向用户反馈每个请求的状态。

我发现为长时间运行的查询提供一些状态信息很有用,否则用户可能会认为请求丢失了。

关于javascript - 并行或串行组合多个 AJAX 调用哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20051870/

相关文章:

javascript - 闭包和解构——解构函数不能互相调用?

javascript - MobX 在 ObservableArray.map(..) 中绑定(bind)事件处理程序时抛出错误

javascript - 键作为变量导航 jsonp 对象

jquery - 选中的 Ajax 复选框不起作用

javascript - 使用 FullCalendar 和 SlickGrid 时如何选择文本

javascript - 不断调用的函数中的setTimeout

javascript - 使用 React Redux 的异步数据加载持续存在

javascript - 在不刷新页面的情况下提交 php 表单

javascript - setInterval 第二次不处理 ajax 调用

jquery - 选择所有相同类的元素并存储在字符串中