web worker


title: worker
date: 2018-02-26 17:08:22
tags:


web worker 运行在后台的javascript, 不会影响页面的性能。

一些高计算量和高延迟的工作可以交给子线程

兼容最新的浏览器,ie10+

// web_worker.js
// 创建新的子线程
var worker = new Worker('child_worker.js');

// 主线程向子线程发送消息
worker.postMessage("hello, world!");

// 主线程通过message事件接受子线程发送的消息
worker.onmessage = function (e) {
    console.log(e.data);
}

// 主线程监听子线程是否发生错误
// 发生错误可以出发主线程的error事件
worker.onerror = function (e) {
    console.log(e);
}

worker.terminate() //终止进程

// child_worker.js
self.onmessage = function (e) {
    console.log('Fa Said:' + e.data);
}

var arr =[]
for(var i=0; i<10000; i++){
  arr.push(i)
}

self.postMessage('msg from son!')

你可能感兴趣的:(web worker)