solicitudes de rango de trabajo

Cuando se realiza una solicitud, se puede establecer un encabezado range que le indique al servidor que muestre solo una parte de la solicitud completa. Esto es útil para ciertos archivos, como un archivo de video, en el que un usuario puede cambiar dónde reproducirlo.

¿Qué hace este módulo?

Puede haber situaciones en las que quieras entregar un archivo almacenado en caché pero el navegador estableció un encabezado range. Por lo general, se ignoraría el encabezado.

Este módulo leerá la respuesta almacenada en caché y mostrará el rango de datos especificado.

Uso básico

Para usar las solicitudes de rango de Workbox, agrega el complemento a la estrategia en la que deseas verificar las solicitudes de rango.

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 avanzado

Si quieres usar esta lógica fuera del complemento, puedes usar la función createPartialResponse().

import {createPartialResponse} from 'workbox-range-requests';

createPartialResponse(request, cachedResponse);

Para obtener más información, consulta los documentos de referencia.

Tipos

RangeRequestsPlugin

El complemento de solicitud de rango facilita que una solicitud con un encabezado "Range" se complete con una respuesta almacenada en caché.

Para ello, intercepta la devolución de llamada del complemento cachedResponseWillBeUsed. y mostrar el subconjunto apropiado del cuerpo de la respuesta almacenada en caché.

Propiedades

  • constructor

    void

    La función constructor se ve de la siguiente manera:

    () => {...}

Métodos

createPartialResponse()

workbox-range-requests.createPartialResponse(
  request: Request,
  originalResponse: Response,
)

Si se proporcionan objetos Request y Response como entrada, se mostrará una promesa para un Response nuevo.

Si el Response original ya incluye contenido parcial (es decir, tiene un estado de 206), esto supone que ya cumple con el Range: los requisitos y lo devolverá tal como está.

Parámetros

  • request

    Solicitud

    Una solicitud, que debe contener un encabezado Range:

  • originalResponse

    Respuesta

    Una respuesta.

Muestra

  • Promesa<Respuesta>

    Una respuesta 206 Partial Content, con el cuerpo de la respuesta establecido en la porción de contenido especificada por el encabezado Range: de la solicitud, o una respuesta 416 Range Not Satisfiable si no se pueden cumplir las condiciones del encabezado Range:.