Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

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
2
3
4
5
6
// 创建worker的主线程
var myWorker = new Worker("js/a.js");
const btn = document.getElementById("btn");
btn.onclick = function () {
myWorker.postMessage("hello");
};
1
2
3
4
// worker脚本,上文的js/a.js
addEventListener("message", (event) => {
console.log(event.data);
});

参考资料

Mwd Worker

关于本人

HaiYao的博客
Git主页

评论