Workbox-Bereich-Anforderungen

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:

    ()=> {...}

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 im Range:-Header der Anfrage angegeben ist, oder eine 416 Range Not Satisfiable-Antwort, wenn die Bedingungen des Range:-Headers nicht erfüllt werden.