百科狗-知识改变命运!
--

HTML5 Web Socket和Web Worker的区别以及使用方法

桃子1年前 (2023-12-21)阅读数 5#综合百科
文章标签浏览器数据

一、WEB SOCKET

1、Web Socket是一种协议、本质上和http、tcp一样、协议是用来说明数据是如何传输的,写过一个小的在线聊天使用了socket.io、之后总结这个项目

2、Web Socket的前缀有两种:(1)ws:// 不是加密的、 (2)wss:// 是加密的

3、客户端和服务端进行Web Socket交互的方式也可以理解为“http握手 tcp数据传输”的方式

(1)浏览器(支持Websocket的浏览器)像HTTP一样、发起一个请求、然后等待服务端的响应

(2)服务器返回握手响应、告诉浏览器请将后续的数据按照websocket制定的数据格式传过来

(3)浏览器和服务器的socket连接不中断、此时这个连接和http不同的是它是双工的了

(4)浏览器和服务器有任何需要传递的数据的时候使用这个长连接进行数据传递

HTTP握手:是因为浏览器和服务器在建立长连接的握手过程是按照HTTP1.1的协议发送的、有Request、Request Header、 Response、 Response Header、但是不同的是Header里面的字段是有特定含义的

TCP传输: 主要体现在建立长连接后、浏览器是可以给服务器发送数据、服务器也可以给浏览器发送请求的、当然它的数据格式并不是自己定义的、是在要传输的数据外层有ws协议规定的外层包的

4、数据传输过程:websocket的数据传输形式是:frame、比如会将一条消息分为几个frame、按照先后顺序传输出去、这样做会有几个好处

(1)大数据的传输可以分片传输、不用考虑到数据大小导致的长度标志位不足够的情况

(2)和http的chunk一样、可以边生成数据边传递消息、即提高传输效率

5、客户端使用Web Socket的语法:JavaScript、服务端:多种web框架支持

二、WEB WORKER

1、当在 HTML 页面中执行脚本时、页面的状态是不可响应的、直到脚本已完成、而Web Worker 是运行在后台的 JavaScript、独立于其他脚本、不会影响页面的性能、您可以继续做任何愿意做的事情:点击、选取内容等等、而此时 Web Worker 在后台运行

除了DOM操作之外、理论上任何JS脚本任务都可放入worker中执行;语法上的限制、则是不能跨域访问JS、worker常用于需要消耗大量时间和CPU资源的复杂计算、以换来前台用户操作的友好型;换句话说、从用户体验上看、提高了服务性能

2、Web Worker使用:(当我们创建 Web Worker 对象后、它会继续监听消息(即使在外部脚本完成之后)直到其被终止为止)

(1)通过向 Web Worker 添加一个 "onmessage" 事件监听器来获取接受到的消息

(2)发送消息:postMessage()

HTML5 Web Socket和Web Worker的区别以及使用方法

(3)终止 Web Worker、并释放浏览器/计算机资源: terminate()

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)