多个AJAX请求 - 麻烦?

时间:2012-10-30 22:06:38

标签: javascript ajax streaming

现在我正在使用AJAX来输入活动流列表(TwitchTV),它是观众,我每秒都会请求它。当时要检查的流列表可能会变得非常冗长,所以我计划将ajax请求分成2或3个部分:

1)获取当前流的观看者数量(每1秒检查一次)

2)将流分成两半并检查活动流媒体列表的上半部分(每5秒检查一次)

3)检查活动流媒体列表的下半部分(每5秒检查一次)

所以我会同时运行3个请求,但我担心加载时间会变成什么样。由于它不断地拉入数据会使页面变慢吗?用户可能会注意到吗?为大量数据保留1 ajax请求是否更好?或者对较小的数据使用多个ajax请求是否更好? ajax真的是不断变化的实时数据吗?

1 个答案:

答案 0 :(得分:1)

你的各种问题的答案可能是“它取决于”:

  1. ajax请求本身不应该做得更慢。这些是异步请求,因此它们实际上只会在请求完成时导致用户的浏览器出现任何重要(可能仍然不明显)的负载。

  2. 当请求完成时,可能会使您的应用程序停机(或导致用户以令人不快的方式注意到)的一件事是DOM操作。更改当前流式用户的数量可能不会受到影响,但根据流的数量/您在列表中显示它们的方式,重绘这可能非常昂贵/导致重绘等事情滞后。

  3. 使用Ajax(取决于您希望支持的浏览器)的另一种方法是使用websockets。通过这种方式,您可以保持连接打开,服务器可以告诉应用程序何时需要更改数据,而无需轮询它。

  4. 为什么你需要将你的名单分成上半年和下半年呢?

  5. 减少来回发送的数据量的一种方法可能是发送某种信号,指示您收到的最后一位数据。例如,当twitter.com上的时间线每隔几秒更新一次时,ajax请求会发送它收到的最新推文的id,以便服务器知道不要浪费时间发送任何早于此的数据。根据您的使用情况,这可能有效。

相关问题