【问题标题】:Best way to retrieve data from server every 30~ minutes?每 30~ 分钟从服务器检索数据的最佳方式?
【发布时间】:2014-04-06 16:21:30
【问题描述】:

我一直在寻找使用来自服务器的新数据自动更新我的页面的选项。 我的数据可以从每 10 分钟更改为可能 1 小时,无法预测这一点。每当发生这种情况时,更改必须很快出现在屏幕上(不超过 15 秒)。

所以一种选择是每 15 秒轮询一次并发送一个请求,但随后向服务器发送请求并获得超过 30 分钟的空结果听起来有点愚蠢。

但是如果我使用长轮询,那么长时间保持连接打开是否可以接受?如果近一个小时没有新数据怎么办? 另外,如果我使用长轮询,我需要设置一些超时,不是吗?但是,如果知道服务器上可能有新数据就结束连接,然后重新启动连接是没有意义的。那将是间隔更长的定期轮询,不是吗?

如果有人能指导我找到解决问题的最佳方法,我将不胜感激。提前致谢!

【问题讨论】:

标签: javascript django http comet long-polling


【解决方案1】:

如果您必须支持旧版浏览器,轮询是您唯一的选择。

如果是这种情况,HEAD 方法是相当轻量级的,可以只返回一个状态,表明事情发生了变化。

如果可以支持较新的浏览器,可以使用上面提到的@MikeW方法,也可以看看WebSockets

我找到了this discussion,其中详细介绍了轮询。

【讨论】:

  • 那么旧的浏览器可能是个问题......如果我最终每 15 秒轮询一次,大多数时候得到空结果,那有多糟糕?它只是效率低下,还是只是错误和“糟糕”的编程?
  • Gmail 等网站为旧版浏览器提供(提供?)“轻松”体验是有原因的,但这些都是您必须做出的业务决策。
  • 老实说 - 我什至不知道如何估计这些持续不断的请求是否不好,并承担我无法承受的成本......如果我告诉你该网站经常打开我们办公室大约有 20 个浏览器,每 15-20 秒发送一次请求,这真的很糟糕吗?听起来很多,但我真的不知道。
猜你喜欢
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
  • 2018-10-03
  • 2016-07-10
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 2015-08-06
相关资源
最近更新 更多