script tag | iframe | ajax | websocket | |
polling | 低效, 可以跨域 | / | 低效, 无法跨域 | / |
long-polling | 中效, 可以跨域 | 中效, 无法跨域 | 中效, 无法跨域 | / |
streaming | / | 高效, 无法跨域 | / | 高效, 兼容性差 |
经过对比, 最终只有两种 comet 技术胜出: script tag long-polling, 和 iframe streaming(forever iframe).
script tag long-polling
这是最通用, 浏览器中兼容最好, 使用最广泛的方案, 包括微信网页版等知名网站都使用本方案.
iframe streaming(forever iframe)
本方案虽然效率好一些, 但无法跨域. 另外, 从 Chrome ver.31 起, 一个浏览器只能向一个域名发起唯一的一条连接, 所以, 如果你的网站打开了多个 tab, 那么只能有一个 tab 收到服务器推送, 其它 tab 是收不到的!
转载请注明:爱开源 » 各种 Comet 技术优缺点对比