requêtes-plage-boîte-de-travail

Lors d'une requête, un en-tête range peut être défini pour indiquer au serveur de ne renvoyer qu'une partie de la requête complète. Cette fonctionnalité est utile pour certains fichiers, comme un fichier vidéo, où un utilisateur peut modifier l'emplacement de lecture de la vidéo.

À quoi sert ce module ?

Dans certains cas, vous souhaiterez peut-être diffuser un fichier mis en cache mais le navigateur a défini un en-tête range. Normalement, l'en-tête serait ignoré.

Ce module lit la réponse mise en cache et renvoie la plage de données spécifiée.

Utilisation de base

Vous pouvez utiliser les requêtes de plage Workbox en ajoutant le plug-in à la stratégie pour laquelle vous souhaitez vérifier les requêtes de plage.

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(),
    ],
  });
);
.

Utilisation avancée

Pour utiliser cette logique en dehors du plug-in, peuvent utiliser la fonction createPartialResponse().

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

createPartialResponse(request, cachedResponse);

Pour en savoir plus, consultez la documentation de référence.

Types

RangeRequestsPlugin

Le plug-in de requête de plage permet de répondre facilement à une requête avec un en-tête "Plage" à l'aide d'une réponse mise en cache.

Pour ce faire, il intercepte le rappel du plug-in cachedResponseWillBeUsed et renvoie le sous-ensemble approprié du corps de réponse mis en cache.

Propriétés

  • constructor

    vide

    La fonction constructor se présente comme suit :

    () => {...}

Méthodes

createPartialResponse()

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

Étant donné des objets Request et Response en entrée, cette méthode renvoie une promesse pour un nouvel objet Response.

Si l'élément Response d'origine comporte déjà une partie du contenu un état 206), cela suppose qu'il respecte déjà la Range: et le renverra tel quel.

Paramètres

  • request

    Requête

    Une requête, qui doit contenir un en-tête Range.

  • originalResponse

    Réponse

    Une réponse.

Renvoie

  • Promise<Response>

    Une réponse 206 Partial Content, avec le corps de la réponse défini sur la tranche de contenu spécifiée par le champ l'en-tête Range:, ou une réponse 416 Range Not Satisfiable si le Les conditions de l'en-tête Range: ne peuvent pas être remplies.