WebWorker
介绍
是一种可由脚本创建的后台任务,任务执行中可以向其创建者收发信息。
Worker() 构造函数创建一个 Worker 对象,该对象执行指定的 URL 脚本。这个脚本必须遵守同源策略。
URL 脚本本质上依然是 JS 文件。
使用
new Worker(aURL, options);
- aURL:worker脚本的URL。
- options:可选,一个对象,包含以下属性。
- type:可选,指定worker脚本的类型。
- name:可选,指定worker的名称。
- credentials:可选,指定是否发送cookie。
实例方法:
worker.postMessage(message,transfer);
发送消息
- message:发送的消息。
- transfer:可选,一个数组,包含要传递的ArrayBuffer对象。
worker.terminate();
停止worker。
脚本事件:
onmessage(e)
接收到消息时触发。
- e.data:接收到的消息。
onerror(e)
错误时触发。
- e.message:错误信息。
onmessageerror(e)
接收到错误消息时触发。
- e.message:错误信息。
例子
以下是一个将js/a.js创建为worker的例子。
当btn点击时,将数据发送给worker。
而js/a.js接收到消息时将消息打印。
1 | // 创建worker的主线程 |
1 | // worker脚本,上文的js/a.js |