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 Geräten und in vielen Browserversionen. Sie ist seit Januar 2019 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Streams-API ermöglicht es JavaScript, programmatisch auf Datenströme zuzugreifen, die über das Netzwerk empfangen werden, und diese nach den Wünschen des Entwicklers zu verarbeiten.
Streaming beinhaltet das Aufteilen einer Ressource, die über ein Netzwerk empfangen werden soll, in kleine Teile und deren schrittweise Verarbeitung. Browser tun dies bereits beim Empfang von Medieninhalten – Videos puffern und spielen ab, während mehr Inhalte heruntergeladen werden, und manchmal sieht man, wie Bilder nach und nach angezeigt werden, während mehr geladen wird.
Diese Fähigkeit war JavaScript bisher jedoch nicht zugänglich. Bisher mussten wir, wenn wir eine Ressource jeglicher Art (Video, Textdatei etc.) verarbeiten wollten, die gesamte Datei herunterladen, warten, bis sie in ein geeignetes Format deserialisiert wurde, und dann alle Daten verarbeiten.
Mit der Streams-API können Sie mit JavaScript sofort mit der Verarbeitung von Rohdaten beginnen, sobald diese verfügbar sind, ohne einen Puffer, String oder Blob erzeugen zu müssen.
Es gibt noch mehr Vorteile: Sie können erkennen, wann Streams beginnen oder enden, Streams miteinander verketten, Fehler behandeln und Streams bei Bedarf abbrechen und auf die Geschwindigkeit reagieren, mit der der Stream gelesen wird.
Die Verwendung von Streams beruht darauf, Antworten als Streams verfügbar zu machen. Zum Beispiel ist der Antwortkörper, der von einer erfolgreichen Fetch-Anfrage zurückgegeben wird, ein ReadableStream, der von einem mit ReadableStream.getReader() erstellten Leser gelesen werden kann.
Komplexere Anwendungen betreffen das Erstellen eines eigenen Streams mit dem ReadableStream()-Konstruktor, zum Beispiel zur Datenverarbeitung innerhalb eines Service Workers.
Sie können auch Daten in Streams mit WritableStream schreiben.
Hinweis: Weitere Details über Theorie und Praxis von Streams finden Sie in unseren Artikeln — Streams-API Konzepte, Verwendung lesbarer Streams, Verwendung lesbarer Bytestreams und Verwendung schreibbarer Streams.
Stellt einen lesbaren Datenstrom dar. Er kann verwendet werden, um Antwortströme der Fetch-API oder vom Entwickler definierte Streams zu verarbeiten (z.B. ein benutzerdefinierter ReadableStream()-Konstruktor).
ReadableStreamDefaultReaderStellt einen Standardleser dar, der verwendet werden kann, um Daten aus einem Netzwerkstrom (z.B. einer Fetch-Anfrage) zu lesen.
ReadableStreamDefaultControllerStellt einen Controller dar, der Kontrolle über den Zustand und die interne Warteschlange eines ReadableStream ermöglicht. Standard-Controller sind für Streams, die keine Bytestreams sind.
Bietet eine standardmäßige Abstraktion zum Schreiben von Streaming-Daten in ein Ziel, bekannt als „Sink“. Dieses Objekt verfügt über integrierten Gegendruck und Warteschlangen.
WritableStreamDefaultWriterStellt einen Standard-Schreibstream-Schreiber dar, der verwendet werden kann, um Datenstücke in einen schreibbaren Stream zu schreiben.
WritableStreamDefaultControllerStellt einen Controller dar, der Kontrolle über den Zustand eines WritableStream ermöglicht. Beim Konstruktor eines WritableStream wird dem zugrunde liegenden Sink eine entsprechende WritableStreamDefaultController-Instanz zugewiesen, um diese zu manipulieren.
Stellt eine Abstraktion für ein Stream-Objekt dar, das Daten transformiert, während es durch eine Pipe-Kette von Stream-Objekten geht.
TransformStreamDefaultControllerBietet Methoden zur Manipulation der mit einem Transform-Stream assoziierten ReadableStream und WritableStream.
Bietet eine eingebaute Byte-Länge-Wartestrategie, die beim Erstellen von Streams verwendet werden kann.
CountQueuingStrategyBietet eine eingebaute Stückzählungs-Wartestrategie, die beim Erstellen von Streams verwendet werden kann.
Wenn ein neues Request-Objekt erstellt wird, können Sie ihm einen ReadableStream in der body-Eigenschaft seines RequestInit-Wörterbuchs zuweisen. Dieser Request könnte dann an ein fetch() übergeben werden, um das Streamen zu beginnen.
Response.bodyDer von einer erfolgreichen Fetch-Anfrage zurückgegebene Antwortkörper wird standardmäßig als ReadableStream angezeigt und kann mit einem Leser verbunden werden usw.
Stellt einen BYOB („Bring your own buffer“) Leser dar, der verwendet werden kann, um vom Entwickler bereitgestellte Stream-Daten zu lesen (z.B. ein benutzerdefinierter ReadableStream()-Konstruktor).
ReadableByteStreamControllerStellt einen Controller dar, der Kontrolle über den Zustand und die interne Warteschlange eines ReadableStream ermöglicht. Bytestream-Controller sind für Bytestreams.
ReadableStreamBYOBRequestStellt eine Anforderung zum Hineinziehen in einen ReadableByteStreamController dar.
Wir haben ein Verzeichnis mit Beispielen erstellt, die zur Streams-API-Dokumentation passen – siehe mdn/dom-examples/streams. Die Beispiele sind wie folgt:
| Streams # rs-class |
| Streams # ws-class |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.