Ao fazer uma solicitação, um cabeçalho range
pode ser definido para informar ao servidor que ele deve retornar apenas uma parte da solicitação completa. Isso é útil para determinados arquivos, como um arquivo de vídeo, em que um usuário pode mudar o local de reprodução do vídeo.
O que este módulo faz?
Pode haver cenários em que você quer veicular um arquivo em cache, mas o navegador definiu um cabeçalho range
. Normalmente, o cabeçalho seria ignorado.
Esse módulo vai ler a resposta armazenada em cache e retornar o intervalo de dados especificado.
Uso básico
É possível usar as solicitações de intervalo do Workbox adicionando o plug-in à estratégia que você quer verificar.
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(), ], }); );
Uso Avançado
Para usar essa lógica fora do plug-in, pode usar a função createPartialResponse()
.
import {createPartialResponse} from 'workbox-range-requests'; createPartialResponse(request, cachedResponse);
Para mais informações, consulte os documentos de referência.
Tipos
RangeRequestsPlugin
O plug-in de solicitação de intervalo facilita o envio de solicitações com um valor "Range" cabeçalho para ser atendidos por uma resposta armazenada em cache.
Ele faz isso interceptando o callback do plug-in cachedResponseWillBeUsed
e retornar o subconjunto apropriado do corpo da resposta armazenada em cache.
Propriedades
- construtor
void
A função
constructor
tem esta aparência:() => {...}
- retorna
-
Métodos
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
): Promise<Response>
Dado um objeto Request
e Response
como entrada, isso retornará uma para um novo Response
.
Se o Response
original já tiver conteúdo parcial (ou seja, tiver um status de 206), isso pressupõe que já atende ao Range:
e vai retorná-lo no estado em que se encontra.
Parâmetros
- solicitação
Solicitação
Uma solicitação, que precisa conter um cabeçalho Range:
- originalResponse
Resposta
Uma resposta.
Retorna
-
Promise<Response>
Uma resposta
206 Partial Content
, com o corpo da resposta definido como a fração de conteúdo especificada pelo cabeçalhoRange:
ou uma resposta416 Range Not Satisfiable
se o do cabeçalhoRange:
não podem ser atendidas.