Worker
Baseline 广泛可用 *
注意:此功能在 Web Workers 中可用,但 Service Workers 除外。
Worker 接口是 Web Workers API 的一部分,代表一个可以通过脚本创建的后台任务,该任务可以向其创建者发送消息。
通过调用 Worker("path/to/worker/script") 构造函数来创建 worker。
Worker 本身也可以创建新的 Worker,前提是这些新的 Worker 必须与父页面具有相同的 源 (origin)。
请注意,并非所有接口和函数都可供 Web Worker 使用。有关详细信息,请参阅 Web Worker 可用的函数和类。
构造函数
实例属性
继承其父级 EventTarget 的属性。
实例方法
继承其父级 EventTarget 的方法。
Worker.postMessage()-
向 worker 的内部作用域发送一条消息 — 该消息可以包含任何 JavaScript 对象。
Worker.terminate()-
立即终止 Worker。这不会让 Worker 完成其操作;它会被立即停止。
ServiceWorker实例不支持此方法。
事件
error-
在 Worker 中发生错误时触发。
message-
当 Worker 的父级收到来自该 Worker 的消息时触发。
messageerror-
当
Worker对象收到一条无法 反序列化 的消息时触发。
示例
以下代码片段使用 Worker() 构造函数创建一个 Worker 对象,然后使用该 worker 对象
js
const myWorker = new Worker("/worker.js");
const first = document.querySelector("input#number1");
const second = document.querySelector("input#number2");
first.onchange = () => {
myWorker.postMessage([first.value, second.value]);
console.log("Message posted to worker");
};
如需完整示例,请参阅我们的 基本专用 Worker 示例(运行专用 Worker)。
规范
| 规范 |
|---|
| HTML # 专用的 Worker 和 Worker 接口 |
浏览器兼容性
加载中…
不同类型的 Worker 支持程度各不相同。具体细节请参阅每个 Worker 类型的页面。
跨域 Worker 的错误行为
在规范的早期版本中,加载跨域 Worker 脚本会抛出 SecurityError。如今,而是抛出一个 error 事件。
另见
- 使用 Web Workers
- Web Workers 可用的函数和类
- 其他类型的 Worker:
SharedWorker和Service Worker。 OffscreenCanvas接口