| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/API/Broadcast_Channel_API | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Mrz 2022 browserbergreifend verfgbar.
Hinweis: Diese Funktion ist in Web Workers verfgbar.
Die Broadcast Channel API ermglicht eine grundlegende Kommunikation zwischen Browsing-Kontexten (also Fenstern, Tabs, Frames oder Iframes) und Workern auf demselben Origin.
Hinweis:
Genauer gesagt, ist die Kommunikation zwischen Browsing-Kontexten mit derselben Storage-Partition erlaubt. Der Speicher wird zuerst entsprechend den obersten Seiten partitioniert wenn Sie beispielsweise eine geffnete Seite bei a.com haben, die ein iframe von b.com einbettet, und eine andere Seite geffnet ist bei b.com, dann kann das iframe nicht mit der zweiten Seite kommunizieren, obwohl sie technisch gesehen denselben Ursprung haben. Wenn jedoch die erste Seite ebenfalls auf b.com ist, kann das iframe mit der zweiten Seite kommunizieren.
Indem Sie ein BroadcastChannel-Objekt erstellen, knnen Sie alle Nachrichten empfangen, die an diesen gesendet werden. Sie mssen keine Referenz zu den Frames oder Workern pflegen, mit denen Sie kommunizieren mchten: Sie knnen sich durch das Erstellen eines eigenen BroadcastChannel mit demselben Namen auf einen bestimmten Kanal "abonnieren" und eine bidirektionale Kommunikation zwischen allen fhren.
Ein Client tritt einem Broadcast Channel bei, indem er ein BroadcastChannel-Objekt erstellt. Der Konstruktor nimmt einen einzigen Parameter: den Namen des Kanals. Wenn es das erste ist, das sich mit diesem Broadcast-Kanalnamen verbindet, wird der zugrunde liegende Kanal erstellt.
// Connection to a broadcast channel
const bc = new BroadcastChannel("test_channel");
Es gengt, die Methode postMessage() auf dem erstellten BroadcastChannel-Objekt aufzurufen, welches jedes Objekt als Argument akzeptiert. Ein Beispiel fr eine Textnachricht:
// Example of sending of a very simple message
bc.postMessage("This is a test message.");
Daten, die an den Kanal gesendet werden, werden mit dem Structured Clone Algorithmus serialisiert. Das bedeutet, dass Sie eine breite Palette von Datenobjekten sicher senden knnen, ohne sie selbst serialisieren zu mssen.
Die API ordnet den Nachrichten keine Semantik zu, daher liegt es an Ihrem Code, zu wissen, welche Art von Nachrichten zu erwarten sind und was damit zu tun ist.
Wenn eine Nachricht gepostet wird, wird ein message-Ereignis an jedes BroadcastChannel-Objekt gesendet, das mit diesem Kanal verbunden ist. Eine Funktion kann fr dieses Ereignis mit dem onmessage-Ereignishandler ausgefhrt werden:
// A handler that only logs the event to the console:
bc.onmessage = (event) => {
console.log(event);
};
Um einen Kanal zu verlassen, rufen Sie die close()-Methode auf dem Objekt auf. Dies trennt das Objekt vom zugrunde liegenden Kanal und ermglicht die Speicherbereinigung.
// Disconnect the channel
bc.close();
Das selbstenthaltende Interface der Broadcast Channel API ermglicht die Kommunikation zwischen verschiedenen Kontexten. Es kann verwendet werden, um Benutzeraktionen in anderen Tabs innerhalb desselben Origin zu erkennen, wie wenn der Benutzer sich an- oder abmeldet.
Das Nachrichtenprotokoll ist nicht definiert und die verschiedenen Browsing-Kontexte mssen es selbst implementieren; es gibt keine Aushandlung oder Anforderung von der Spezifikation.
BroadcastChannelReprsentiert einen benannten Kanal, auf den jeder Browsing-Kontext eines gegebenen Origin zugreifen kann.
| Spezifikation |
|---|
| HTML # broadcasting-to-other-browsing-contexts |
BroadcastChannel, die Schnittstelle, die es implementiert.Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |