web worker 是运行在后台的js,独立与其他脚本,不会影响页面的性能。web worker 是使用多线程,不会影响主线程的运行。声明(启动)一个worker:
var w = new Worker('task.js');
worker的三个方法:
postMessage();
onMessage();
terminate();
task.js文件中使用postMessage();方法返回执行结果;
var c = 0;
function count()//计时器方法
{
postMessage(c);
c++;
setTimeout(count, 1000);
}
count();
在调用的js文件中通过onMessage();方法接收返回值:
w.onMessage = function(e){
e.data;//data是执行结果
};
停止worker:
w.terminate();
w = null;//释放资源