ServiceWorkerGlobalScope: sự kiện messageerror
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is only available in Service Workers.
Sự kiện messageerror của giao diện ServiceWorkerGlobalScope xảy ra khi các thông điệp đến không thể được giải tuần tự hóa.
Sự kiện này không thể hủy và không nổi bọt.
Cú pháp
Sử dụng tên sự kiện trong các phương thức như addEventListener(), hoặc thiết lập một thuộc tính trình xử lý sự kiện.
addEventListener("messageerror", (event) => { })
onmessageerror = (event) => { }
Loại sự kiện
Một ExtendableMessageEvent. Kế thừa từ ExtendableEvent.
Thuộc tính sự kiện
Kế thừa các thuộc tính từ giao diện cha, ExtendableEvent.
ExtendableMessageEvent.dataRead only-
Trả về dữ liệu của sự kiện. Nó có thể là bất kỳ kiểu dữ liệu nào. Nếu được gửi trong sự kiện
messageerror, thuộc tính sẽ lànull. ExtendableMessageEvent.originRead only-
Trả về nguồn gốc của
Clientđã gửi thông điệp. ExtendableMessageEvent.lastEventIdRead only-
Đại diện, trong server-sent events, cho ID sự kiện cuối cùng của nguồn sự kiện.
ExtendableMessageEvent.sourceRead only-
Trả về một tham chiếu đến đối tượng
Clientđã gửi thông điệp. ExtendableMessageEvent.portsRead only-
Trả về mảng chứa các đối tượng
MessagePortđại diện cho các cổng của kênh thông điệp được liên kết.
Ví dụ
Trong ví dụ dưới đây, một trang lấy tham chiếu đến đối tượng ServiceWorker thông qua ServiceWorkerRegistration.active, và sau đó gọi hàm postMessage() của nó.
// main.js
if (navigator.serviceWorker) {
navigator.serviceWorker.register("service-worker.js");
navigator.serviceWorker.addEventListener("message", (event) => {
// event is a MessageEvent object
console.log(`The service worker sent me a message: ${event.data}`);
});
navigator.serviceWorker.ready.then((registration) => {
registration.active.postMessage("Hi service worker");
});
}
Service worker có thể lắng nghe lỗi giải tuần tự hóa thông điệp bằng cách lắng nghe sự kiện messageerror:
// service-worker.js
self.addEventListener("messageerror", (event) => {
// event is an ExtendableMessageEvent object
console.error("Message deserialization failed");
});
Hoặc, tập lệnh có thể lắng nghe lỗi giải tuần tự hóa thông điệp bằng cách sử dụng onmessageerror:
// service-worker.js
self.onmessageerror = (event) => {
// event is an ExtendableMessageEvent object
console.error("Message deserialization failed");
};
Đặc tả kỹ thuật
| Specification |
|---|
| Service Workers Nightly> # eventdef-serviceworkerglobalscope-messageerror> |
| Service Workers Nightly> # dom-serviceworkerglobalscope-onmessageerror> |