Cuando se realiza una solicitud, se puede configurar un encabezado range
que le indique al servidor que muestre solo una parte de la solicitud completa. Esto es útil para ciertos archivos, como uno de video, en los que el usuario puede cambiar la ubicación en la que se reproduce el video.
¿Qué hace este módulo?
Puede haber situaciones en las que quieras entregar un archivo almacenado en caché, pero el navegador configuró un encabezado range
. Por lo general, se ignorará 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 del cuadro de trabajo, agrega el complemento a la estrategia con la que deseas comprobar 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 la entrega de una solicitud con un encabezado "Range" a través de una respuesta almacenada en caché.
Para ello, intercepta la devolución de llamada del complemento cachedResponseWillBeUsed
y muestra el subconjunto apropiado del cuerpo de la respuesta almacenada en caché.
Propiedades
-
constructor
void
La función
constructor
se ve de la siguiente manera:() => {...}
-
resultados
-
Métodos
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
Si se dan objetos Request
y Response
como entrada, se mostrará una promesa para una Response
nueva.
Si la Response
original ya tiene contenido parcial (es decir, tiene un estado de 206), se da por sentado que ya cumple los requisitos de Range:
y se mostrará tal como está.
Parámetros
-
request
Solicitud
Una solicitud, que debe contener un encabezado Range:.
-
originalResponse
Respuesta
Una respuesta.
Devuelve
-
Promesa<Respuesta>
Una respuesta
206 Partial Content
, con el cuerpo de la respuesta configurado como la porción de contenido especificada por el encabezadoRange:
de la solicitud, o una respuesta416 Range Not Satisfiable
si no se pueden cumplir las condiciones del encabezadoRange:
.