Quando effettui una richiesta, è possibile impostare un'intestazione range
che indichi
affinché il server restituisca solo una parte della richiesta completa. Questa funzionalità è utile per determinati file, come i file video, in cui un utente potrebbe cambiare la posizione di riproduzione del video.
Che cosa fa questo modulo?
Potrebbero verificarsi casi in cui desideri pubblicare un file memorizzato nella cache
ma il browser ha impostato un'intestazione range
. Di solito l'intestazione
verrebbe ignorato.
Questo modulo leggerà la risposta memorizzata nella cache e restituirà i in un intervallo di dati specificato.
Utilizzo di base
Puoi utilizzare Richieste di intervallo Workbox aggiungendo il plug-in al la strategia con cui 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 utilizzare la funzione createPartialResponse()
.
import {createPartialResponse} from 'workbox-range-requests';
createPartialResponse(request, cachedResponse);
Per ulteriori informazioni, consulta la documentazione di riferimento.
Tipi
RangeRequestsPlugin
Il plug-in per la richiesta di intervallo semplifica le richieste con un "intervallo" intestazione per mediante una risposta memorizzata nella cache.
A tale scopo, intercetta il callback del plug-in cachedResponseWillBeUsed
e restituisce il sottoinsieme appropriato del corpo della risposta memorizzata nella cache.
Proprietà
-
costruttore
null
La funzione
constructor
ha questo aspetto:() => {...}
-
returns
-
Metodi
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
Dati come input gli oggetti Request
e Response
, restituisce una promessa per un nuovo Response
.
Se l'elemento Response
originale ha già contenuti parziali (ovvero ha
lo stato 206), presuppone che soddisfi già le Range:
e restituirà il codice così com'è.
Parametri
-
richiesta
Richiesta
Una richiesta, che deve contenere un intervallo: intestazione.
-
originalResponse
Risposta
Una risposta.
Resi
-
Promise<Response>
Una risposta
206 Partial Content
con il corpo della risposta impostato sull'intervallo di contenuti specificato dall'intestazioneRange:
della richiesta o una risposta416 Range Not Satisfiable
se non è possibile soddisfare le condizioni dell'intestazioneRange:
.