Bei einer Anfrage kann ein range
-Header festgelegt werden, der dem Server mitteilt, nur einen Teil der vollständigen Anfrage zurückzugeben. Das ist nützlich für bestimmte Dateien wie Videodateien, bei denen ein Nutzer den Wiedergabeort ändern kann.
Worum geht es in diesem Modul?
Es kann vorkommen, dass Sie eine im Cache gespeicherte Datei
aber der Browser hat einen range
-Header festgelegt. Normalerweise wird die Überschrift ignoriert.
Dieses Modul liest die im Cache gespeicherte Antwort und gibt den Datenbereich angegeben wird.
Grundlegende Nutzung
Sie können Workbox-Bereichsanfragen verwenden, indem Sie das Plug-in der Strategie hinzufügen, für die Sie Bereichsanfragen prüfen möchten.
import {registerRoute} from 'workbox-routing';
import {CacheFirst} from 'workbox-strategies';
import {RangeRequestsPlugin} from 'workbox-range-requests';
registerRoute(
({url}) => url.pathname.endsWith('.mp4'),
new CacheFirst({
plugins: [
new RangeRequestsPlugin(),
],
});
);
Erweiterte Nutzung
Wenn Sie diese Logik außerhalb des Plug-ins verwenden möchten, können Sie die Funktion createPartialResponse()
verwenden.
import {createPartialResponse} from 'workbox-range-requests';
createPartialResponse(request, cachedResponse);
Weitere Informationen finden Sie in den Referenzdokumenten.
Typen
RangeRequestsPlugin
Mit dem Plug-in für Bereichsanfragen kann eine Anfrage mit dem Header „Range“ ganz einfach durch eine im Cache gespeicherte Antwort erfüllt werden.
Dazu wird der cachedResponseWillBeUsed
-Plug-in-Callback abgefangen.
und die entsprechende Teilmenge des im Cache gespeicherten Antworttextes zurückgeben.
Attribute
-
Konstruktor
void
Die
constructor
-Funktion sieht so aus:() => {...}
-
Gibt zurück
-
Methoden
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
Bei Verwendung eines Request
- und Response
-Objekts als Eingabe wird ein
neue Response
versprochen.
Wenn die ursprüngliche Response
bereits einen Teil des Inhalts enthält (d.h.
den Status 206 haben, wird davon ausgegangen, dass die Range:
und gibt sie unverändert zurück.
Parameter
-
Anfrage
Anfrage
Eine Anfrage, die einen Range: Header.
-
originalResponse
Antwort
Eine Antwort.
Gibt Folgendes zurück:
-
Versprechen<Antwort>
Entweder eine
206 Partial Content
-Antwort mit Der Antworttext ist auf das Inhaltssegment festgelegt, das imRange:
-Headers oder eine416 Range Not Satisfiable
-Antwort, wenn der die Bedingungen desRange:
-Headers nicht erfüllt sind.