加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ajax vs WebSocket

发布时间:2020-12-15 21:43:38 所属栏目:百科 来源:网络整理
导读:Ajax有什么优点? 有人回答Ajax可以在页面不刷新的情况下加载并更新数据就是它的优点。这用IFRAME也能做到,根本算不上什么优点。那么Ajax使用起来比 IFRAME方便算是优点了吧?这是不可否认的,但仅此而已。由此我们只能得出一个结论:Ajax比IFRAME方式强。


  Ajax有什么优点?
  有人回答Ajax可以在页面不刷新的情况下加载并更新数据就是它的优点。这用IFRAME也能做到,根本算不上什么优点。那么Ajax使用起来比 IFRAME方便算是优点了吧?这是不可否认的,但仅此而已。由此我们只能得出一个结论:Ajax比IFRAME方式强。 兼容性好、易学易用。
  我为什么不用Ajax?
  最重要的原因是它不能满足我的需求,或者说如果非要用Ajax做到同样的效果我需要更大的服务器开销。现代Web的趋势对数据实时同步的需求越来越 高,无论是百度贴吧还是QQ空间,它们的程序都有长轮询在工作,以确保服务器上的数据可以实时推送到客户端。但是长轮询是个开销很大的东西,每次通信都需 要一个新的HTTP请求,如果数据交互频繁,服务器就需要处理很多HTTP请求。而且,HTTP请求头中会发送Cookie等一些不必要的数据,这会浪费 了大量带宽。当然,数据流方式的Comet也是一种不错的做法,他可以规避长轮询的各种问题。但是它需要在低版本IE上需要使用IFRAME做兼容,算不 上纯正的Ajax方式。而且由于浏览器对XHR对象的实现细节目前没有规范的约束,这种Comet方式的稳定性并不好。所以说Comet是Ajax的硬 伤。
  为什么用WebSocket?

IE从10才开始兼容

低版本IE我们也可以通过AS上TCP的API来自己封装个WebSocket协议,这在之前的文章中有介绍过。

使用WebSocket的另一大原因是 很多Mobile设备上的浏览器也支持它。
  为什么WebSocket至今没有流行起来?
  最重要的原因就是兼容性,要是IE6就兼容早就流行起来了!问题是从IE10才开始兼容,虽然对低版本IE的兼容我们可以变相实现,但很多人就是不愿 意使用变相兼容。他们觉得这种实现方式稳定性太差不可靠了。除了兼容性问题就是构架困难的问题,WebSocket的握手协议虽然是形似HTTP但它不 是,所以很多HTTP服务器上难以实现WebSocket。几乎所有CGI方式运行的服务器程序都对WebSocket不友好,所以在服务器方面它就吃了 个闭门羹。

另外,目前也没有什么比较成熟的WebSocket框架可以用,所以一般的开发者都不会考虑它。
  什么时候不该用WebSocket?
  最大的问题依然是兼容性,虽然我们可以变相兼容到低版本IE上,但是那样就失去了原有的优势。所以如果一个项目面向的用户群使用的浏览器大部分都为低 版本IE时就不该使用WebSocket。另外,WebSocket是长连接,如果客户端的程序没有数据实时同步的需求就没必要使用它。因为长连接会带来 一定的服务器内存开销。如果Ajax就能轻松搞定的话就完全没必要兴师动众的搞WebSocket。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读