Web Worker是一种在浏览器端运行的JavaScript脚本,它可以在后台独立于主线程运行,不会影响到用户界面的响应。它可以用来执行复杂的计算任务,充分利用浏览器的多核处理能力,提高网页的性能。
使用方法
需要创建一个Web Worker的实例,可以使用 new Worker(scriptURL) 来创建,scriptURL指定要执行的JavaScript脚本文件地址,或者也可以使用 Blob 来构造:
var worker = new Worker('worker.js');
可以使用 worker.postMessage() 来向worker发送消息,消息可以是任意类型的JavaScript值,比如字符串,数字,对象等:
worker.postMessage('Hello World!');
可以通过 worker.onmessage 来接收worker发送过来的消息:
worker.onmessage = function(e) { console.log('Received message from worker: ' + e.data); };
可以使用 worker.terminate() 来终止worker的运行:
worker.terminate();
使用Web Worker进行后台计算任务时,需要注意的是,worker脚本内不能访问DOM,也不能使用document、window等对象,因为worker运行在后台,不能访问页面的元素,也不能直接操作DOM。