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

Lorsque vous effectuez une requête, vous pouvez définir un en-tête range qui indique au serveur de ne renvoyer qu'une partie de la requête complète. Cela est utile pour certains fichiers tels qu'un fichier vidéo, où l'utilisateur peut modifier l'endroit où lire la vidéo.

En quoi consiste ce module ?

Il peut arriver que vous souhaitiez diffuser un fichier mis en cache, mais que le navigateur ait défini un en-tête range. Normalement, l'en-tête est ignoré.

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

Utilisation de base

Vous pouvez utiliser les requêtes de plage de boîte de travail 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

Si vous souhaitez utiliser cette logique en dehors du plug-in, vous pouvez 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 facilite le traitement d'une requête comportant un en-tête "Range" par 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 la réponse mise en cache.

Propriétés

  • constructor

    void

    La fonction constructor se présente comme suit :

    () => {...}

Méthodes

createPartialResponse()

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

Avec des objets Request et Response en entrée, une promesse pour un nouveau Response est renvoyée.

Si l'élément Response d'origine contient déjà du contenu partiel (c'est-à-dire si son état est 206), cela suppose qu'il répond déjà aux exigences Range: et le renvoie 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

  • Promesse<Réponse>

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