1,提出问题
执行一个同步操作时,如果耗时非常长,导致主线程堵塞的问题
问题的产生:由于用户界面和js进程公用一个线程,js高强度的计算会导致浏览器无暇
顾忌用户界面,进入假死状态
2,多线程
通过使用 web worker,我们可以在浏览器的后台运行js,进而不占用浏览器自身线程
web worker可以提高应用的总体性能,并且提高用户体验
创建后台进程,这些进程不会卡死用户界面,更适合用来进行存数据与ui无关,比较小号cpu的计算
3,web worker 兼容支持性
if(window.Worker){
alert('支持')
}else{
alert('不支持')
}
ie6789不支持
4,web worker 工作原理
--向worker发送要处理的数据--
页面 worker进程
<--worker将接收到的数据进行<--处理,并返回给页面
5,web worker语法
创建worker对象:
var work = new Worker(url);
参数url:处理该worker进程的js文件路径
eg:
var ww = new Worker('js/count.js');
页面向worker发送数据:
ww.postMessage(msg);
参数msg:向worker空间发的数据,最好为字符串,
js多线程解释与运用
最新推荐文章于 2024-08-07 18:00:38 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)