0

现在我正在使用 AJAX 来拉入活动流列表(TwitchTV),它是观众,我每秒都在请求这个。有时要检查的流列表可能会变得很长,因此我计划将 ajax 请求分成 2 或 3 个部分:

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

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

3) 检查第二半的活动主播列表(每 5 秒检查一次)

所以我会同时运行 3 个请求,但我担心加载时间会降到多少。由于它不断地提取数据,它会使页面变慢吗?用户可能会注意到吗?对大量数据保留 1 个 ajax 请求更好还是对较小数据使用多个 ajax 请求更好?ajax 真的是获取不断变化的实时数据的最佳选择吗?

4

1 回答 1

1

您的各种问题的答案可能是“视情况而定”:

  1. ajax 请求本身不应该使任何事情变慢。这些是异步请求,因此它们实际上只会在请求完成时给用户的浏览器带来任何显着(并且可能仍然不明显)的负载。

  2. 可能会减慢您的应用程序速度(或导致用户以不愉快的方式注意到)的一件事是请求完成时的 DOM 操作。就地更改您当前的流用户数量可能不会受到伤害,但取决于流的数量/您在列表中显示它们的方式,重绘这可能非常昂贵/导致重绘等事情的滞后。

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

  4. 为什么你需要把你的清单分成前半部分和后半部分?

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

于 2012-10-30T22:43:57.273 回答