Podczas wysyłania żądania można ustawić nagłówek range, który informuje,
serwer zwraca tylko część pełnego żądania. Jest to przydatne w przypadku niektórych plików, takich jak pliki wideo, w których przypadku użytkownik może zmienić miejsce odtwarzania filmu.
Do czego służy ten moduł?
W niektórych sytuacjach wyświetlanie pliku z pamięci podręcznej może Ci się przydać
ale przeglądarka ustawiła nagłówek range. Zwykle nagłówek jest ignorowany.
Ten moduł odczytuje odpowiedź z pamięci podręcznej i zwróci określony zakres danych.
Podstawowe zastosowanie
Aby używać żądań zakresu Workbox, dodaj wtyczkę do którą chcesz sprawdzić pod kątem żądań dotyczących 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
Jeśli chcesz używać tej logiki poza Wtyczką,
może używać funkcji createPartialResponse().
import {createPartialResponse} from 'workbox-range-requests';
createPartialResponse(request, cachedResponse);
Więcej informacji znajdziesz w dokumentacji referencyjnej.
Typy
RangeRequestsPlugin
Wtyczka żądania zakresu ułatwia spełnienie żądania z nagłówkiem „Range” za pomocą odpowiedzi z pamięci podręcznej.
Odbywa się to przez przechwytywanie wywołania zwrotnego wtyczki cachedResponseWillBeUsed
i zwraca odpowiedni podzbiór treści odpowiedzi w pamięci podręcznej.
Właściwości
-
konstruktor
nieważne
Funkcja
constructorwygląda tak:() => {...}-
returns
-
Metody
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
): Promise<Response>
Biorąc pod uwagę obiekty Request i Response jako dane wejściowe, funkcja ta zwróci
obiecują nowe Response.
Jeśli oryginalny element Response zawiera już częściową treść (czyli ma stan 206), zakładamy, że spełnia on już wymagania dotyczące elementu Range: i zwróci go w postaci oryginalnej.
Parametry
-
żądanie
Żądanie
Żądanie, które powinno zawierać zakres: nagłówek.
-
originalResponse
Odpowiedź
Odpowiedź.
Zwroty
-
Obietnica<Response>
Odpowiedź
206 Partial Contentz treścią ustawioną na wycinek treści określony w nagłówkuRange:lub odpowiedź416 Range Not Satisfiable, jeśli warunki nagłówkaRange:nie zostaną spełnione.