Bij het indienen van een verzoek kan een range
header worden ingesteld die de server vertelt slechts een deel van het volledige verzoek terug te sturen. Dit is handig voor bepaalde bestanden, zoals een videobestand, waarbij een gebruiker kan wijzigen waar de video moet worden afgespeeld.
Wat doet deze module?
Er kunnen scenario's zijn waarin u een bestand in de cache wilt weergeven, maar de browser een range
heeft ingesteld. Normaal gesproken wordt de header genegeerd.
Deze module leest het in de cache opgeslagen antwoord en retourneert het opgegeven gegevensbereik.
Basisgebruik
U kunt Workbox Range Requests gebruiken door de plug-in toe te voegen aan de strategie waarmee u de bereikaanvragen wilt controleren.
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(),
],
});
);
Geavanceerd gebruik
Als u buiten de plug-in gebruik wilt maken van deze logica, kunt u de functie createPartialResponse()
gebruiken.
import {createPartialResponse} from 'workbox-range-requests';
createPartialResponse(request, cachedResponse);
Voor meer informatie, zie de referentiedocumenten .
Soorten
RangeRequestsPlugin
Met de range request-plug-in kan een verzoek met een 'Range'-header eenvoudig worden vervuld door een in de cache opgeslagen antwoord.
Dit gebeurt door de callback van de cachedResponseWillBeUsed
-plug-in te onderscheppen en de juiste subset van de in de cache opgeslagen antwoordtekst terug te sturen.
Eigenschappen
- bouwer
leegte
De
constructor
ziet er als volgt uit:() => {...}
- geeft terug
Methoden
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
Gegeven een Request
en Response
object als invoer, zal dit een belofte voor een nieuwe Response
retourneren.
Als het oorspronkelijke Response
al gedeeltelijke inhoud bevat (dwz de status 206 heeft), wordt ervan uitgegaan dat het al voldoet aan de Range:
-vereisten, en wordt het geretourneerd zoals het is.
Parameters
- verzoek
Verzoek
Een verzoek dat een Range: header moet bevatten.
- origineel antwoord
Antwoord
Een antwoord.
Geeft terug
Beloof<Reactie>
Ofwel een
206 Partial Content
antwoord, waarbij de antwoordtekst is ingesteld op het deel van de inhoud dat is opgegeven door deRange:
header van de aanvraag, of een416 Range Not Satisfiable
-antwoord als niet aan de voorwaarden van deRange:
header kan worden voldaan.