solicitações-do-intervalo-da-caixa de trabalho

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:

    () => {...}

Métodos

createPartialResponse()

workbox-range-requests.createPartialResponse(
  request: Request,
  originalResponse: 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çalho Range: ou uma resposta 416 Range Not Satisfiable se o do cabeçalho Range: não podem ser atendidas.