一,关于 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