我一直在寻找可以使用来自服务器的新数据自动更新我的页面的选项。 我的数据可以从每 10 分钟更改一次到可能 1 小时,无法预测这一点。每当发生这种情况时,更改必须很快出现在屏幕上(不超过 15 秒)。
因此,一种选择是每 15 秒轮询并发送一个请求,但随后向服务器发送请求并在 30 多分钟内得到空结果听起来有点愚蠢。
但是如果我使用长轮询,那么长时间保持连接打开是否可以接受?如果将近一个小时没有新数据怎么办? 另外,如果我使用长轮询,我需要设置一些超时,不是吗?但是如果知道服务器上可能有新数据就结束连接,然后重新启动连接,就没有意义了。这将是间隔更长的定期轮询,不是吗?
如果有人能指导我找到解决我问题的最佳方法,我将不胜感激。提前致谢!
最佳答案
如果您必须支持旧版浏览器,轮询是您唯一的选择。
如果是这样的话,HEAD
方法就非常轻量级了,它可以只返回一个状态,表明事情已经发生了变化。
如果你能支持更新的浏览器,你可以使用上面提到的方法@MikeW,或者你可以看看WebSockets
我找到了 this discussion其中详细介绍了轮询。
关于javascript - 每 30~ 分钟从服务器检索数据的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22891452/