Ajax vs WebSocket

本文深入分析了Ajax和WebSocket在现代Web开发中的优缺点及应用场景,指出Ajax在页面更新方面的优势,同时强调了WebSocket在实时数据同步领域的潜力与挑战。文章还对比了两者在兼容性、学习曲线、服务器负载等方面的不同,并讨论了WebSocket至今未能广泛流行的原因。最后,文章提出了在选择技术时应考虑的具体因素,帮助开发者做出更合适的技术选型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  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。      

转载于:https://my.oschina.net/sheila/blog/389743

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值