CacheStorage.match()
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis avril 2018.
Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.
La fonction match() de l'interface CacheStorage qu'une Requête est la clé d'un objet Cache object suivie par un objet CacheStorage et retourne une Promesse qui renvoie la Réponse correspondante.
Vous pouvez accéder à CacheStorage via la propriété globale caches.
Les objets Cache sont cherchés par ordre de création.
Note :
caches.match() est une méthode de commodité. Une fonctionnalité équivalente consiste à appeler cache.match() sur chaque cache (dans l'ordre renvoyé par caches.keys()) jusqu'à ce qu'une Réponse soit renvoyée.
Syntaxe
caches.match(request, { options }).then(function (response) {
  // faire quelque-chose avec la requête et la réponse
});
Paramètres
- request
- 
La Requêterecherchée.
- options Facultatif
- 
Un objet dont les propriétés contrôlent comment la correspondance est fait avec l'opération match. Les options disponible sont:- ignoreSearch: Un- Booleanqui détermine si le preocessus de rapprochement doit ignorer la chaîne de requête dans l'url. Défini à- true, la partie- ?value=barde- http://foo.com/?value=barsera ignoré lors d'un rapporchement. La valeur par défaut est- false.
- ignoreMethod: Un- Booleanqui, quand défini à- true, empêche l'opération de rapprochement de valider le verbe http de la- Requête- http(normalement, seulement- GETet- HEADsont authorisés) La valeur par défaut est- false.
- ignoreVary: Un- Booleanqui, quand défini à- true, dit à l'opération de rapprochement de ne pas faire le rapprochement avec le header- VARY. En d'autres termes, si une URL est sélectionnée elle sera conservée indépemment de la présence du header- VARY. La valeur par défaut est- false.
- cacheName: Un- DOMStringqui représente le cache dans lequel on recherche.
 
Valeur retournée
Exemples
Cet exemple est tiré du MDN sw-test example (voir sw-test running live). Nous attendons pour un évènement FetchEvent et nous construisons une réponse comme suit:
- Vérifier si une correspondance pour la requète est trouvée dans le CacheStorageen utilisantCacheStorage.match. Si oui, la servir.
- Si non, ouvrire le cache v1avecopen(), mettre le réseau par défaut dans le cache avecCache.putet retourner un clone du réseau par défaut en utilisantreturn response.clone()— obligatoire carput()détruit le corps de la réponse.
- Si ceci échoue (e.g., parce que le réseau est inactif), retourner une réponse de secours.
self.addEventListener("fetch", function (event) {
  event.respondWith(
    caches.match(event.request).then(function (response) {
      // caches.match() always resolves
      // but in case of success response will have value
      if (response !== undefined) {
        return response;
      } else {
        return fetch(event.request)
          .then(function (response) {
            // response may be used only once
            // we need to save clone to put one copy in cache
            // and serve second one
            let responseClone = response.clone();
            caches.open("v1").then(function (cache) {
              cache.put(event.request, responseClone);
            });
            return response;
          })
          .catch(function () {
            return caches.match("/sw-test/gallery/myLittleVader.jpg");
          });
      }
    }),
  );
});
Spécifications
| Specification | 
|---|
| Service Workers> # cache-storage-match> | 
Compatibilité des navigateurs
Chargement…