【发布时间】:2013-11-18 15:47:14
【问题描述】:
我正在开发一个单页应用程序,它向服务器发送多个 AJAX 请求。
系统使用轮询,因为一些数据请求可能需要大约 10-20 分钟来计算。
- 客户端向服务器请求数据
- 服务器分发作业 ID
- 客户端每隔几秒就向服务器询问一次结果
轮询算法会随着时间的推移降低轮询频率,每隔 10 秒停止一次。
但是当客户端在短时间内发送不同的数据请求时,他最终会得到大约 10-20 个作业 ID,并开始轮询所有这些。
是简单地这样做更好,让浏览器并行处理这些请求,还是应该调度每个请求并序列化它们?
序列化它们会带来性能优势吗?
【问题讨论】:
-
为什么不提供允许客户端在单个请求中轮询多个作业的 API?
-
不要担心连续做,但一定要考虑Pointy的建议。
-
浏览器自己处理。取决于您的浏览器,它一次只会打开 2-6 个并行请求,当这 2-6 个请求中的一个完成时打开下一个。
-
我想过这个,但这需要重写服务器和客户端之间的接口,我希望有一个更快的解决方案:D
标签: javascript ajax