caselle-di-lavoro-richieste-intervallo

Quando effettui una richiesta, puoi impostare un'intestazione range che indichi al server di restituire solo una parte della richiesta completa. Questo è utile per determinati file come un file video, in cui un utente potrebbe modificare dove riprodurre il video.

Cosa fa questo modulo?

Potrebbero verificarsi casi in cui vuoi pubblicare un file memorizzato nella cache, ma il browser ha impostato un'intestazione range. Normalmente l'intestazione viene ignorata.

Questo modulo leggerà la risposta memorizzata nella cache e restituirà l'intervallo di dati specificato.

Utilizzo di base

Puoi utilizzare le richieste di intervallo di Workbox aggiungendo il plug-in alla strategia in base alla quale vuoi controllare le richieste di intervallo.

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(),
    ],
  });
);

Utilizzo avanzato

Se vuoi utilizzare questa logica al di fuori del plug-in, puoi usare la funzione createPartialResponse().

import {createPartialResponse} from 'workbox-range-requests';

createPartialResponse(request, cachedResponse);

Per saperne di più, consulta la documentazione di riferimento.

Tipi

RangeRequestsPlugin

Il plug-in di richiesta di intervallo consente di soddisfare facilmente una richiesta con intestazione "Intervallo" tramite una risposta memorizzata nella cache.

Ciò avviene intercettando il callback del plug-in cachedResponseWillBeUsed e restituendo il sottoinsieme appropriato del corpo della risposta memorizzato nella cache.

Proprietà

  • costruttore

    void

    La funzione constructor ha il seguente aspetto:

    () => {...}

Metodi

createPartialResponse()

workbox-range-requests.createPartialResponse(
  request: Request,
  originalResponse: Response,
)

Dati Request e Response come input, questo restituirà una promessa per un nuovo Response.

Se l'elemento Response originale include già contenuti parziali (ovvero ha uno stato 206), questo presuppone che soddisfi già i requisiti Range: e li restituirà così com'è.

Parametri

  • richiesta

    Richiesta

    Una richiesta, che deve contenere un'intestazione Range:.

  • originalResponse

    Risposta

    Una risposta.

Ritorni

  • Promessa<Risposta>

    Una risposta 206 Partial Content, con il corpo della risposta impostato sulla sezione di contenuto specificata dall'intestazione Range: della richiesta oppure una risposta 416 Range Not Satisfiable se non è possibile soddisfare le condizioni dell'intestazione Range:.