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

时间:2013-11-18 15:47:15

标签: javascript ajax

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

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

  • 客户端向服务器请求数据
  • 服务器提供了job-id
  • 客户端每隔几秒就会向服务器询问结果

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

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

以这种方式执行此操作并让浏览器并行处理这些请求或者我是否计划每个请求以及序列化所有请求是否更好?< /强>

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

2 个答案:

答案 0 :(得分:1)

几个月前,由于多次ajax调用,我遇到了性能问题,但从那时起我就没有深入研究过这个话题:High latencies loading stores in an ExtJS 4.1 MVC application

答案 1 :(得分:1)

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

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

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

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