除了服务器上明显的重负载之外,同时进行多个并发 AJAX 轮询是否很糟糕?或者浏览器/服务器可以处理的内容是否存在限制?
示例(所有 AJAX 轮询)..
功能 A 以 3 秒的间隔为全球聊天系统(如 Facebook/MySpace)拉取新消息。
函数 B 以 2 秒为间隔,用于拉取更新以及向用户显示哪些操作(例如在在线扑克应用程序中)。
功能 C 在 4 秒内运行,但也为单独的消息传递系统拉取新消息。
浏览器过去每个域的并发连接限制为 4 个(或者在非常旧的情况下为 2 个)。大多数现代浏览器已将此提升到 6 或 8(基于我自己的测试和一些支持阅读)。
因此,长轮询连接会占用浏览器中的这些插槽,并可能阻止其他内容快速下载。
否则,对于连接速度较慢(拨号或蜂窝网络)的人来说,它可能会占用带宽。
可能还有其他缺点,但这是我看到的两个大缺点。
您永远不应该同时需要两个以上的活动 AJAX 连接。要么您进行长轮询,例如服务器以标头响应,然后在有数据要传递时发送实体主体。
如果您使用上面描述的 A、B、C 运行轮询方案,您可以使用一个在 3 个请求之间交替的 AJAX 线程来执行此操作,但将超时值设置为下一个请求间隔。您创建一个假想的时间线,在其中使用一个 AJAX 线程将您的请求分发给 A、B 和 C。
我发现一些移动设备(例如 iPad)会阻塞不止一个待处理的 xhr 请求。