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适合后台来做运算,但是不要频繁跟调用者通信