js如何实现多线程 (Worker)

523 阅读1分钟

js是单线程脚本语言,而H5新增的Worker可以让js实现多线程,

可以先检测一下游览器是否注册Worker,

if(typeof(Worker)!=="undefined"){
    //worker 支持
}else{
    //Worker 不支持
}

1.创建Worker对象 创建Worker实例对象,需要传入后台运行的js文件路径,

var worker=new Worker("js文件路径");

2.传递数据 Worker线程里的数据可以通过postMessage向主线程传递数据,

postMessage(data);

3.接收数据 主线程可以通过监听message来接收数据,

worker.onmessage=function(){
    console.log(event.data);
}

4.终止Worker运行

worker.terminate();

注意,postMessage比较消耗资源,会造成页面不响应,所以worker适合后台来做运算,但是不要频繁跟调用者通信