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介面