主线程
var worker = new Worker('/jsteststatic/static/worker.js') //必须是网络路径,不能是本地路径
worker.postMessage('Hello World')
worker.postMessage({method: 'echo', args: ['Work']})
worker.onmessage = function (event) {
console.log('Received message ' + event.data)
// worker.terminate() // 结束web worker 释放资源
} 复制代码
worker.js 中
var self = this
self.addEventListener('message', function (e) {
self.postMessage('You said: ' + e.data)
}, false)复制代码
通信完成。
第二种本地web worker
<script id="worker" type="app/worker">
addEventListener('message', function () {
postMessage('some message');
}, false);
</script>
<script>
var blob = new Blob([document.querySelector('#worker').textContent]);
var url = window.URL.createObjectURL(blob);
var worker = new Worker(url);
console.log('w:'+worker)
worker.postMessage('Hello index')
worker.onmessage = function (e) {
console.log(e.data)
};
</script>复制代码
通信完成。
参考链接:http://www.ruanyifeng.com/blog/2018/07/web-worker.html