对于我们应用程序的新界面,我认为有必要放弃websockets并选择彗星以获得更广泛的支持。我意识到有几种技术,我需要确保选择正确的技术。
问题: AJAX轮询方法是否在收到数据后立即发布,或等到请求结束?
如果没有,有没有办法使用iFrame技术并消除浏览器的死亡旋转器?
谢谢!
答案 0 :(得分:0)
Comet通过ajax(ajax长轮询)仅在请求完成后才将数据提供给应用程序的前端。当您需要以不规则间隔发送的离散数据包时,它非常有用。如果您想要分块数据,那么只需在第一个块之后完成请求,然后让客户端立即请求另一个块。如果准备好另一个块,立即服务;如果没有,那就让客户端等到有。
答案 1 :(得分:0)
值得注意的是,HTTP Long-Polling和HTTP Streaming都属于Comet保护伞。 Long-Polling要求关闭连接以发送数据。流不会,并且可以通过现有连接发送数据而不关闭它。
我不相信有一种简单的方法可以解决'死亡的旋转'问题。我在几年前写了一篇post about this,但我仍然不知道这是一个万无一失的解决方案。
就个人而言,我建议您使用WebSockets而不是hacky Comet solutions。
彗星是关于过去的。让我们展望未来。
- Comet的发明者Alex Russell
答案 2 :(得分:0)