Jur*_*riy 12 javascript iframe comet xmlhttprequest
我正在实现典型的服务器推送(彗星)应用程序.我在两个选项中进行选择:longpoll XHR和iFrames.这些的优点和缺点是什么?我知道跨站点限制,iFrame是非常重量级的组件......还有其他差异吗?例如,运输的"可靠性"或对组件的控制水平?您如何看待,是否有一个正确的答案哪种方法更好或者两者都有用例?
提前致谢.
PS我有一个非常好的XHR实现工作,但我想考虑替代方案.
您应该使用 socket.io 或等效的库。它支持您提到的两种方式以及更多方式:
但是,假设您使用适当的抽象层,现在想要决定使用哪种传输。:)
IMO,iframe 的最大问题是错误处理。持续加载 iframe 技术使得错误处理变得更加困难。您不会通过 404 或超时等方便事件得到通知,因此您必须在 JavaScript 中设置一个时间间隔来监视错误。
据推测,iframe 的开销比在每条消息后发出新的 XHR/HTTP 请求重新连接要少,但当我尝试时,我看到的只是服务器上的内存开销增加和零响应能力改进;可能这取决于您选择的后端。
另一个有趣的事实是,标准规定浏览器只能向服务器发出两个并发请求,但 Mozilla 仅对 XHR 做了例外:
https://developer.mozilla.org/en/XMLHttpRequest
当您发出长请求时,2 个连接限制非常重要:如果您同时占用两个管道,则其他任何管道都无法通过!您必须小心设置页面上所有代码共享的单个通道。但在 Firefox 上,当且仅当您使用 XHR 时,您现在才有一些回旋余地。
iframe 确实具有能够发出跨域请求的优势。
| 归档时间: |
|
| 查看次数: |
882 次 |
| 最近记录: |