Worker: event message
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Note: This feature is available in Web Workers, except for Service Workers.
Event message được kích hoạt trên một đối tượng Worker khi cha của worker nhận được thông điệp từ worker của nó (tức là, khi worker gửi thông điệp bằng DedicatedWorkerGlobalScope.postMessage()).
Event này không thể hủy và không nổi bọt.
Cú pháp
Sử dụng tên event trong các phương thức như addEventListener(), hoặc thiết lập một thuộc tính event handler.
addEventListener("message", (event) => { })
onmessage = (event) => { }
Loại event
Một MessageEvent. Kế thừa từ Event.
Thuộc tính event
Giao diện này cũng kế thừa các thuộc tính từ cha, Event.
MessageEvent.dataRead only-
Dữ liệu được gửi bởi người phát thông điệp.
MessageEvent.originRead only-
Một chuỗi đại diện cho nguồn gốc của người phát thông điệp.
MessageEvent.lastEventIdRead only-
Một chuỗi đại diện cho ID duy nhất cho event.
MessageEvent.sourceRead only-
Một
MessageEventSource(có thể là một đối tượng WindowProxy,MessagePort, hoặcServiceWorker) đại diện cho người phát thông điệp. MessageEvent.portsRead only-
Một mảng các đối tượng
MessagePortđại diện cho các cổng liên kết với kênh mà thông điệp đang được gửi qua (nếu phù hợp, ví dụ: trong channel messaging hoặc khi gửi thông điệp tới một shared worker).
Ví dụ
Mã này tạo một worker mới và lắng nghe các thông điệp từ nó bằng addEventListener():
const worker = new Worker("static/scripts/worker.js");
worker.addEventListener("message", (event) => {
console.log(`Received message from worker: ${event.data}`);
});
Ngoài ra, nó có thể lắng nghe bằng thuộc tính event handler onmessage:
const worker = new Worker("static/scripts/worker.js");
worker.onmessage = (event) => {
console.log(`Received message from worker: ${event.data}`);
};
Worker gửi thông điệp bằng self.postMessage():
// static/scripts/worker.js
self.postMessage("I'm alive!");
Đặc tả kỹ thuật
| Specification |
|---|
| HTML> # event-message> |
Tương thích trình duyệt
>Xem thêm
- Các event liên quan:
messageerror. DedicatedWorkerGlobalScope.postMessage().