什么是WebSocket和Ajax轮询?各自区别?各自应用的场景

什么是Ajax轮询

Ajax它一般是异步的。也能同步使用。
聊天是需要长连接的,在一些场景下我们不想使用比较耗费资源的长连接,又想实现数据的监听,这时候我们就会使用Ajax的轮询。

Ajax轮询一般分为两种:
1、设定一个定时器,无论有无结果返回,时间一到就会继续发起请求,这种轮询耗费资源,也不一定能够得到想要的数据,这样的轮询是不推荐的。
2、在第一次请求的时候,如果返回数据了,那么就在成功的回调里面再次发起这个请求,就像递归一样,调用本方法。如果时间太久了,失败了,同样的再次调用这个请求,也就是本函数。
当然,这种轮询是需要后台进行配合的,没有数据改变的时候就不用返回,或者约定好逻辑。

什么是WebSocket

WebSocket 是HTML5一种新的协议,基于tcp的协议。它实现了浏览器与服务器 全双工通信(full-duplex)。
websocket 只需要服务端和客户端一次握手,需要借助 HTTP 请求完成,不需要使用轮询的方式
WebSocket 是真正实现了全双工通信的服务器向客户端推的互联网技术。
它是一种在单个 TCP连接 上进行全双工通讯协议,就可以自由进行数据传送和接收,允许服务端主动发送数据,

WebSocket和Ajax轮询的区别

Ajax的特点在于异步交互,动态更新web页面,因此Ajax的适用范围是交互较多,频繁读取数据的web应用。
websocket一般会应用在需要提供多个用户相互交流,或需要实时的展示服务端变动的数据这两种情况。

WebSocket和Ajax各自应用的场景

ajax应用场景:
用Ajax进行表单数据验证,不需要弹出新窗口,也不需要将整个页面提交到服务器,快速而又不会加重服务器负担。
按需取数据,页面会根据用户的操作向服务器请求所需要的数据,这样就不会存在数据的冗余,减少了数据下载总量。
同时,更新页面时不需要重新加载全部内容,大大缩短了用户的等待时间,需要自动更新页面,例如新闻。

Websocket使用场景:
Websocket是一个持久化的协议。用websocket可以实现服务端主动发送信息给客户端,并且客户端能够接收进行处理。
当我们创建某个会话的时候,我们彼此就建立了持久化的协议,然后各自都有约定好的监听,后台可以随时主动与你通信,你也可以主动给后台发送请求 。
使用场景如下: 社交订阅、多玩家游戏、协同编辑/编程、点击流数据、股票基金报价、体育实况更新等。

本文内容借鉴此文章

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨不旧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值