时间:2023-01-19 | 标签: | 作者:Q8 | 来源:网络
小提示:您能找到这篇{关于Ajax和websocket,你应该知道的事儿}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的关于Ajax和websocket,你应该知道的事儿内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
AjaxAjax,即异步JavaScript和XML,是一种创建交互式网页应用的网页开发技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的部分进行加载更新。 Ajax 的优点在于它在浏览器与web服务器之间使用异步数据传输(HTTP请求),不阻塞用户,核心对象是XMLHTTPRequest。通过这个对象,js可在不重新加载页面的情况下与web服务器交换数据。 websocketwebsocket是HTML5一种新的协议,实现了浏览器与服务器全双工通信。其本质是:先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,服务端与客户端通过此TCP连接进行实时通信。 websocket最大的优点在于——服务器和浏览器可以在给定的时间范围内的任意时刻,互相推送消息。在建立连接之后,服务器可以主动传送数据给浏览器。 Ajax与websocket最大的不同在于:Ajax需要客户端发起请求,websocket服务器和客户端可以互相实时推送消息。 Ajax轮询和websocket的区别实现浏览器与服务器的实时数据交互,可以通过建立websocket,也可以通过Ajax轮询的方式。 那么这两种方式有什么不同呢? 1. Ajax轮询Ajax轮询的原理非常简单,就是让浏览器隔几秒就发送一次请求,询问服务器是否有新信息,交互场景如下:
我们可以看出:Ajax轮询这种方式,在不断地建立HTTP连接,然后等待服务端处理,服务端不会主动联系客户端,只有客户端发起。 这种方式是有很大缺陷的,这种方式会非常的耗费资源,Ajax轮询需要服务器有很快的处理速度。 所以,很有可能发生如下的情景:
2. websocket连接通过上述,我们可以看出Ajax轮询并不是最好的方式,轮询需要消耗服务器很多的资源。所以,在这种情况下,websocket出现了,服务端就可以主动推送消息给客户端。 此时的交互情景如下:
只需要经过一次HTTP请求,就可以做到两端源源不断的消息传送了。 那么websocket是如何解决资源消耗的问题呢?
这里是需要经过两层代理的,即HTTP协议在Nginx等服务器的解析下,传送给相应的 Handler(PHP等) 来处理。简单地说,就好比一个速度非常快速的信使(Nginx),他负责把问题转交给相应的客服(Handler)。 本身信使基本上速度是足够的,但是每次都卡在客服(Handler) 了,总是有客服处理速度太慢,导致客服不够。 Websocket就解决了这样一个难题,建立websocket连接后,可以直接跟信使建立持久的连接,有信息的时候客服想办法通知信使,然后信使在统一转交给客户。 这样就可以解决Handler处理速度过慢的问题了。 Ajax和websocket的应用场景了解了Ajax和websocket的基本概念,那么我们平时会在哪些应用场景应用到这两种技术呢? 1. Ajax的应用场景Ajax的特点在于异步交互,动态更新web页面,因此Ajax的适用范围是交互较多,频繁读取数据的web应用。 比如如下场景: (1)用Ajax进行表单数据验证 在填写表单内容时,需要保证数据的唯一性(例如新用户注册填写的用户名),因此必须对用户输入的内容进行数据验证。 使用Ajax技术,可以由XMLHttpRequest对象发出验证请求,根据返回的HTTP响应判断验证是否成功,整个过程不需要弹出新窗口,也不需要将整个页面提交到服务器,快速而又不会加重服务器负担。
(2)按需取数据 在web应用中,经常会用到分类树或树形结构,例如部门结构,文件的分类结构等。 Ajax技术是这样实现树形结构的:
页面会根据用户的操作向服务器请求所需要的数据,这样就不会存在数据的冗余,减少了数据下载总量。同时,更新页面时不需要重新加载全部内容,只更新央视十三台广告5秒价格需要更新的那部分内容即可,大大缩短了用户的等待时间。 (3)自动更新页面 web应用中有很多数据的变化是实时的,例如:最新的新闻,天气预报以及聊天室等等。在Ajax出现之前,用户为了即使了解相应的内容必须不断刷新页面,查看是否有新的内容变化,或者页面本身实现定时刷新的功能。 应用Ajax技术可以改善这种这种情况,页面加载以后,会通过Ajax在后台进行定时的轮询,向服务器发送请求,查看是否有最新的消息(当然这种情况是有弊端的,上面也说到了)。如果有则将新的数据下载并且在页面上进行动态的更新,通过一定的方式通知用户。 2. websocket的应用场景决定是否需要使用websocket技术的方法其实很简单:
如果回答都是肯定的,那么你的产品中就要应用websocket技术了。 常用的应用场景如下: (1)社交类应用 对社交类的应用的一个好处之处就是——能够即时的知道你的朋友正在做什么?用户是不会想要在数分钟之后,才能知道一个家庭成员在群里发送的红包或者一个朋友给你发的消息。用户是在线的,所以用户收到的消息应该是实时的。 (2)股票基金类应用的价格 金融界瞬息万变——几乎是每毫秒都在发生变化,过时的信息就能导致损失。当我们打开一个股票或基金类应用时,我们想要知道产品实时的价格,而不是10秒前的数据。使用websocket可以实时更新这些数据变化而不需要等待。 (3)基于位置的应用 越来越多的基于位置的应用,都是借用移动设备的GPS功能来实现的。如果一直记录用户的位置,就可以收集到更加细致化的数据。如果需要实时的更新网络数据仪表盘(比如:说运动员的教练需要查看这些数据),借用websocket可以做到让数据实时刷新。 (4)在线教育类应用 在线教育是学习的不错方式,可以和老师以及其他同学一起交流。websocket技术可以实现多媒体聊天、文字聊天等功能。 总结我们总结一下,Ajax一般会应舒克电动牙刷营销策略用在交互较多,频繁读取数据的web应用中。websocket一般会应用在需要提供多个用户相互交流,或需要实时的展示服务端变动的数据这两种情况。了解了这两项技术,在设计到相关产品功能时,就能应对自如了~ #专栏作家#流年,专栏作家。互联网产品设计师,4年互联网产品设计经验。擅长用户体验设计,喜欢钻研需求功能背后的技术实现方式;在成为综合型产品设计师的道路上不断努力前进! 本文于。, 题图作者提供
|
上一篇:谈谈交互设计中的反馈设计
下一篇:如何规避Design System架构设计中的逻辑陷阱
一、标题规则:标题关键词分开的店铺,关键词排名和权重会排在前面。所以店主...
作为一个淘宝卖家,关注自己的店铺权重,是十分重要的,因为这对自己的销量、...
一般的消费者在淘宝买东西的时候都会先输入一个他理解这个产品的词组,顾客的...
淘宝直通车收费方式还是挺好的,所以对于一些资金比较少的淘宝店家来说,推广...
第一步:登录到淘宝卖家中心,点击左侧菜单中的『物流管理-电子面单平台-我的...
推广当然都希望立竿见影,最好来一个点你广告的,就做一笔生意,所以要选择你...
现在开淘宝网店只要交一些保证金就可以完成了,可以说是投资最低的创业成本了...
宝贝滞销,也就是说宝贝长期没有销量,上架之后90天依然没有销量,那么淘宝方...
直通车坑位指的是大家在使用直通车做店铺推广的时候,官方平台给予宝贝的展示...
线下活动对很多网站来说不容易,对于一些静态网站来说更加无从着手。比如技术...

小提示:您应该对本页介绍的“关于Ajax和websocket,你应该知道的事儿”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通关于Ajax和websocket,你应该知道的事儿的相关事宜。
关键词:3年, Ajax, websocket, 中级,