Ao fazer uma solicitação, é possível definir um cabeçalho range
para que o servidor retorne 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ê queira disponibilizar um arquivo armazenado em cache, mas o navegador tenha definido 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
Para usar as solicitações de intervalo do Workbox, adicione o plug-in à estratégia em que você quer verificar solicitações de intervalo.
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
Se você quiser usar essa lógica fora do plug-in,
use a função createPartialResponse()
.
import {createPartialResponse} from 'workbox-range-requests';
createPartialResponse(request, cachedResponse);
Para mais informações, consulte a documentação de referência.
Tipos
RangeRequestsPlugin
O plug-in de solicitação de intervalo facilita o preenchimento de uma solicitação com um cabeçalho "Range" por uma resposta armazenada em cache.
Isso é feito interceptando o callback do plug-in cachedResponseWillBeUsed
e retornando o subconjunto adequado do corpo da resposta armazenado 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,
)
Dado um objeto Request
e Response
como entrada, isso retornará uma promessa para um novo Response
.
Se o Response
original já tiver conteúdo parcial (ou seja, com
um status de 206), isso pressupõe que ele já atende aos requisitos de Range:
e o retornará como está.
Parâmetros
-
request
Solicitação
Uma solicitação, que precisa conter um cabeçalho Range:.
-
originalResponse
Resposta
Uma resposta.
Retorna
-
Promessa<Resposta>
Uma resposta
206 Partial Content
, com o corpo da resposta definido para a fração de conteúdo especificada pelo cabeçalhoRange:
da solicitação, ou uma resposta416 Range Not Satisfiable
se as condições do cabeçalhoRange:
não puderem ser atendidas.