Podczas wysyłania żądania można ustawić nagłówek range
, który informuje serwer, że zwraca tylko część pełnego żądania. Jest to przydatne w przypadku niektórych plików, np. plików wideo,
które użytkownik może zmienić, gdzie chce odtworzyć film.
Co robi ten moduł?
Może się zdarzyć, że zechcesz wyświetlić plik z pamięci podręcznej, gdy przeglądarka ustawi nagłówek range
. Zwykle nagłówek jest ignorowany.
Ten moduł odczyta odpowiedź z pamięci podręcznej i zwróci określony zakres danych.
Podstawowe użycie
Możesz używać żądań zakresów Workbox, dodając wtyczkę do strategii, w odniesieniu do której chcesz sprawdzać żądania dotyczące zakresu.
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(),
],
});
);
.
Zaawansowane użycie
Jeśli chcesz wykorzystać tę logikę poza wtyczką, możesz użyć funkcji createPartialResponse()
.
import {createPartialResponse} from 'workbox-range-requests';
createPartialResponse(request, cachedResponse);
Więcej informacji znajdziesz w dokumentacji.
Typy
RangeRequestsPlugin
Wtyczka żądania zakresu ułatwia realizację żądania z nagłówkiem „Range” za pomocą odpowiedzi zapisanej w pamięci podręcznej.
Odbywa się to przez przechwytywanie wywołania zwrotnego wtyczki cachedResponseWillBeUsed
i zwracanie odpowiedniego podzbioru treści odpowiedzi zapisanej w pamięci podręcznej.
Właściwości
-
konstruktor
void
Funkcja
constructor
wygląda tak:() => {...}
-
returns
-
Metody
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
Biorąc pod uwagę dane wejściowe obiekty Request
i Response
, zwróci to obietnicę dla nowego elementu Response
.
Jeśli pierwotny element Response
zawiera już część treści (czyli ma stan 206), przyjmuje się, że spełnia już wymagania Range:
i zwraca go w niezmienionej postaci.
Parametry
-
Poproś
Prośba
Żądanie, które powinno zawierać nagłówek Range:.
-
originalResponse
Odpowiedź
Odpowiedź.
Akcje powrotne
-
Obietnica<Response>
Odpowiedź
206 Partial Content
z treścią odpowiedzi ustawioną na wycinek treści określony przez nagłówekRange:
żądania lub odpowiedź416 Range Not Satisfiable
, jeśli nie mogą zostać spełnione warunki nagłówkaRange:
.