165   JS

 

一,关于 Web Workers
1,由于 JS 是单线程运行,在复杂的业务逻辑下,为了模拟多线程,可以通过 Web Workers 来实现
2,Web Workers 会单独于 JS 主线程运行,通过 postMessage 和 onmeesage 方法跟主流程交互数据
3,不在 JS 主线程内,所以 Web Workers 无法使用 window,但依然可用 XMLHttpRequest

 

二,使用示例

 

1,主线程(main.js)创建 Web Workers

var webWorker = new Worker('socket.js');

2,主线程(main.js)向 Web Workers 传输数据

webWorker.postMessage({'input':'val'});

3,Web Workers (socket.js)接收来自主线程的数据

onmessage=function(e){
	console.log(e.data)
}

4,Web Workers (socket.js)发送数据给主线程

postMessage({'output':'val'})

 

5,主线程(main.js)接收来自 Web Workers 的数据

webWorker.onmessage=function(e){
	console.log(e.data)
}

更多资料




Leave a Reply

Your email address will not be published. Required fields are marked *