03.08 WebSocket有没有可能取代AJAX?

前端全栈


软件项目开发中,往往需要前端与后端进行数据交互,而数据交互有两种最常见的形式Ajax和WebSocket。一般而言,前后端实时的数据交互使用WebSocket,而非实时数据的交互用Ajax的居多。

既然都是数据交互方案,曾有人称WebSocket可以替代Ajax,真的是这样吗?

Ajax 与 WebSocket 对比

1、Ajax是一处异步数据传输技术

Ajax是异步JavaScript和XML技术的实现,通过Ajax可以让网页异步更新数据(不需要重新加载整个页面),对页面中的部分数据进行更新,而且不会阻塞。

现在所有浏览器对于Ajax技术支持都很好,基本上每个网站都会用到此技术。

2、WebSocket是HTML5推出的新协议

WebSocket是随着HTML5推出的一种新的协议,通过WebSocket可实现浏览器端与服务端的双向实时通信(如聊天室),意味着服务器端可以主动推送数据至客户端。

现在大部分浏览器支持WebSocket协议,但依旧有些低版本的浏览器是不支持此协议的。

WebSocket未来可以替代Ajax,但当下不行

WebSocket相较于Ajax有着实时性好、性能高的优点,未来会成为主流技术,但当前不行,毕竟WebSocket对浏览器是有要求的。


以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

网络圈


不会替代

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。



爪哇程序猿


看了很多回答,没有说到重点,http和websocket会并行存在,需求不一样,所以不存在替代。为什么?虽然ws可以实现所有http的功能,但是比如说新闻站,以展示为主,websocket需要保持连接,如果用ws会消耗更多服务器资源。所以,只有请求频繁或者有需要服务器推送,才会选择ws,否则都是http。


万能撸Sir


Websocket只是为了再web端实时通讯业务场景下一种新的高性能技术方案,本身各具优势,何来代替ajax可言。如果不需要实时获取数据为什么要使用ws来占用服务器资源。


孟洒一


我理解是这样的,不知道对不对,websocket是有状态的连接,可以实现双向通讯,但是会占用服务器资源,ajax是客户端发出的异步请求,完成后会释放连接,应用场景不同。非计算机专业,回答的不对请指正!


七喜58326316


不可能取态,只是相互在应用场景的弥补


黑熊哥哥


websocket的优势是服务端可以主动推送数据到客户端,但是因为要保持链接所以对服务端资源占用更多,所以短时间内不会取代Ajax。


花花之主


一个是长链接通讯,一个是异步通讯。二个不一样场景下的技术。怎么比?问问题的人,先弄清楚什么是ajax什么是websocket吧。


_恶即斩


websocket的优势在于节约频繁数据传送时产生http头产生的无效流量,优点和缺点都在于长链接这一个特点,现在移动客户端很容易断开原先的网络重新建立连接,为了解决这个问题需要做很多处理,最终实现代码要比ajax复杂很多


vcasm


很难,ws是无状态的,收发你得带上调用号,累,实际中只能做单一业务数据交换,你可以想想你所有的数据交换,你得封装一个业务层回调你的代码。真心累,ajax只需要一条语句。


分享到:


相關文章: