Workbox-Bereich-Anforderungen

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:

    () => {...}

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