0

对于我们应用程序的新界面,我认为有必要放弃 websockets 并选择 comet 以获得更广泛的支持。我意识到有几种技术,我需要确保选择正确的一种。

问题: AJAX 轮询方法是在收到分块数据后立即释放还是等到请求关闭?

如果没有,有没有办法使用 iFrame 技术并消除浏览器死机?

谢谢!

4

3 回答 3

0

Comet 通过 ajax(ajax 长轮询)只在请求完成后才使数据对应用程序的前端可用。当您有需要不定期发送的离散数据包时,它很有用。如果你想对数据进行分块,那么只需在第一个块之后完成请求,然后让客户端立即请求另一个块。如果还有另一块准备好,请立即提供;如果没有,那就让客户等到有。

于 2012-07-08T02:28:13.323 回答
0

值得注意的是,HTTP Long-Polling 和HTTP Streaming都属于 Comet 的范畴。长轮询需要关闭连接才能发送数据。流不会也可以在不关闭现有连接的情况下通过现有连接发送数据。

我不相信有解决“死亡旋转器”问题的简单方法。几年前我写了一篇关于这个的帖子,但我仍然不知道一个万无一失的解决方案。

就个人而言,我建议您使用 WebSockets 而不是hacky Comet 解决方案

彗星是关于过去的。让未来成为现实。

——亚历克斯·罗素,彗星的发明者

于 2012-07-09T11:35:39.430 回答
0

数据的释放......无论是否分块,都可以刷新到流中并从客户端访问(IE可能会有不同的行为)

如果您从管道(服务器)的另一端控制流的大小,我认为这里没有任何风险。也许您需要从当前的解决方案之一中受益。如果您出于企业原因需要解决方案,请尝试PokeIn,或者如果只是闲逛,SignalR是免费的

于 2012-08-09T21:56:01.530 回答