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:() => {...}
-
returns
-
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'intestazioneRange:
della richiesta oppure una risposta416 Range Not Satisfiable
se non è possibile soddisfare le condizioni dell'intestazioneRange:
.