BroadcastChannel: messageerror-Ereignis
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2022 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Das messageerror-Ereignis der BroadcastChannel-Schnittstelle wird ausgelöst, wenn eine Nachricht, die nicht deserialisiert werden kann, auf dem Kanal ankommt.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignisbehandler-Eigenschaft.
addEventListener("messageerror", (event) => { })
onmessageerror = (event) => { }
Ereignistyp
Ein MessageEvent. Erbt von Event.
Beispiele
>Hören auf messageerror-Ereignisse
Dieser Code verwendet addEventListener(), um auf Nachrichten und Fehler zu hören:
const channel = new BroadcastChannel("example-channel");
channel.addEventListener("message", (event) => {
received.textContent = event.data;
});
channel.addEventListener("messageerror", (event) => {
console.error(event);
});
Dasselbe, jedoch mit den Ereignisbehandler-Eigenschaften onmessage und onmessageerror:
const channel = new BroadcastChannel("example-channel");
channel.onmessage = (event) => {
received.textContent = event.data;
};
channel.onmessageerror = (event) => {
console.log(event);
};
Versuch, Speicher zu teilen
Ein häufiger Grund für messageerror-Ereignisse ist der Versuch, ein SharedArrayBuffer-Objekt oder eine Pufferansicht, die von einem solchen unterstützt wird, über Agent-Clustern hinweg zu senden. Der folgende Code demonstriert dies.
Seite A führt den folgenden Code aus:
const channel = new BroadcastChannel("hello");
channel.postMessage({ data: new SharedArrayBuffer(1024) });
Seite B führt den folgenden Code aus:
const channel = new BroadcastChannel("hello");
channel.addEventListener("messageerror", (event) => {
console.error("Message error");
});
Dann wird Seite B ein messageerror-Ereignis erhalten, wenn versucht wird, die von Seite A gesendete Nachricht zu deserialisieren.
Spezifikationen
| Spezifikation |
|---|
| HTML> # event-messageerror> |
| HTML> # handler-broadcastchannel-onmessageerror> |
Browser-Kompatibilität
Siehe auch
- Verwandte Ereignisse:
message.