并行或串行编写多个 AJAX 调用是否更好



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

该系统使用轮询,因为某些数据请求可能需要大约 10-20 分钟来计算。

  • 客户端向服务器请求数据
  • 服务器分发作业 ID
  • 客户端每隔几秒钟向服务器询问一次结果

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

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

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

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

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

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

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

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

几个月前,由于多次 ajax 调用,我遇到了性能问题,但从那时起我就没有更深入地研究这个主题: 在 ExtJS 4.1 MVC 应用程序中加载存储的高延迟。

最新更新