Worker和webSocket

本文介绍了WebWorker的工作原理及其限制,包括同源策略、DOM访问限制、通信方式、脚本及文件读取限制等,并对比了WebSocket的特点,如双向通信、无同源限制等。

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

webWorker:为JS创建多线程环境,主线程创建一个worker线程,将一些耗时任务分配给worker线程,等worker线程执行完毕之后,再把结果给主线程(依赖http协议)。

webWorker有什么限制:

同源限制:分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源,只能运行在同源策略下。

DOM限制:Worker 线程所在的全局对象,与主线程不一样,无法读取主线程所在网页的 DOM 对象,也无法使用document、window、parent这些对象。但是,Worker 线程可以使用navigator对象和location对象。web worker的出现是为了解决耗时任务引起的性能问题,不建议操作DOM。

通信联系:Worker 线程和主线程不在同一个上下文环境(不在一条路),它们不能直接通信,必须通过消息完成。

脚本限制:Worker 线程不能执行alert()方法和confirm()方法,但可以使用 XMLHttpRequest 对象发出 AJAX 请求。

文件限制:Worker 线程无法读取本地文件,即不能打开本机的文件系统(file://),它所加载的脚本,必须来自网络。

网络通信协议(http、https):缺点:通信(请求)只能由客户端发起,客户端向服务端发送请求,服务器返回结果,无法做到服务器主动想客户端推送信息。

轮询(每隔一段时间,发送一个请求):客户端每隔一段时间,向服务器发送一个请求,查看服务器有没有新的信息。

轮询缺点:轮询效率太低,非常浪费资源(因为要不停的发送请求,来询问服务器是否有新的信息)

webSocket(双线通信):服务器可以主动向客户端推送信息,客户端也可以向服务器发送信息,没有同源限制,客户端可以和任意服务器通信(协议标识符:ws、wss)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值