Beim Senden einer Anfrage kann ein range
-Header festgelegt werden, der den Server anweist, nur einen Teil der vollständigen Anfrage zurückzugeben. Dies ist nützlich bei bestimmten Dateien wie Videodateien, bei denen der Nutzer den Wiedergabeort für das Video ändern kann.
Inhalt dieses Moduls
Unter Umständen möchten Sie eine im Cache gespeicherte Datei bereitstellen, aber der Browser hat einen range
-Header festgelegt. Normalerweise würde der Header ignoriert.
Dieses Modul liest die im Cache gespeicherte Antwort und gibt den angegebenen Datenbereich zurück.
Grundlegende Nutzung
Sie können Workbox-Bereichsanfragen verwenden, indem Sie das Plug-in der Strategie hinzufügen, für die Sie auf 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 createPartialResponse()
-Funktion verwenden.
import {createPartialResponse} from 'workbox-range-requests';
createPartialResponse(request, cachedResponse);
Weitere Informationen finden Sie in der Referenzdokumentation.
Typen
RangeRequestsPlugin
Mit dem Plug-in für Bereichsanfragen kann eine Anfrage mit einem „Range“-Header ganz einfach durch eine im Cache gespeicherte Antwort erfüllt werden.
Dazu wird der Callback des cachedResponseWillBeUsed
-Plug-ins abgefangen und die entsprechende Teilmenge des im Cache gespeicherten Antworttexts zurückgegeben.
Attribute
-
Konstruktor
void
Die Funktion
constructor
sieht so aus:() => {...}
-
Gibt zurück
-
Methoden
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
Wenn ein Request
- und Response
-Objekt als Eingabe verwendet wird, wird ein Promise für ein neues Response
zurückgegeben.
Wenn die ursprüngliche Response
-Datei bereits Teilinhalte enthält, also den Status 206 hat, wird davon ausgegangen, dass sie die Range:
-Anforderungen bereits erfüllt. Daher wird sie unverändert zurückgegeben.
Parameters
-
Request
Anfragen
Eine Anfrage, die den Header „Range:“ enthalten sollte
-
originalResponse
Antwort
Eine Antwort.
Rückgaben
-
Promise<Antwort>
Entweder eine
206 Partial Content
-Antwort, bei der der Antworttext auf das Inhaltssegment festgelegt ist, das imRange:
-Header der Anfrage angegeben ist, oder eine416 Range Not Satisfiable
-Antwort, wenn die Bedingungen desRange:
-Headers nicht erfüllt werden.