CacheStorage.match()

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

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ête recherché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 Boolean qui détermine si le preocessus de rapprochement doit ignorer la chaîne de requête dans l'url. Défini à true, la partie ?value=bar de http://foo.com/?value=bar sera ignoré lors d'un rapporchement. La valeur par défaut est false.
  • ignoreMethod: Un Boolean qui, quand défini à true, empêche l'opération de rapprochement de valider le verbe http de la Requête http (normalement, seulement GET et HEAD sont authorisés) La valeur par défaut est false.
  • ignoreVary: Un Boolean qui, 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 DOMString qui représente le cache dans lequel on recherche. 

Valeur retournée

Une Promesse qui renvoie les Réponses correspondante.

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:

  1. Vérifier si une correspondance pour la requète est trouvée dans le CacheStorage en utilisant CacheStorage.match. Si oui, la servir.
  2. Si non, ouvrire le cache v1 avec open(), mettre le réseau par défaut dans le cache avec Cache.put et retourner un clone du réseau par défaut en utilisant return response.clone() — obligatoire car put() détruit le corps de la réponse.
  3. 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

Spécification Statut Commentaire
Service Workers
La définition de 'CacheStorage: match' dans cette spécification.
Version de travail Définition initiale.

Compatibilités des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
match
Expérimentale
Chrome Support complet 54
Support complet 54
Support partiel 40
Notes
Notes The options parameter only supports ignoreSearch, and cacheName.
Edge Support complet 16Firefox Support complet 44
Notes
Support complet 44
Notes
Notes Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR.)
IE Aucun support NonOpera Support complet 41
Support complet 41
Support partiel 27
Notes
Notes The options parameter only supports ignoreSearch, and cacheName.
Safari Support complet 11.1WebView Android Support complet 54
Support complet 54
Support partiel 40
Notes
Notes The options parameter only supports ignoreSearch, and cacheName.
Chrome Android Support complet 54
Support complet 54
Support partiel 40
Notes
Notes The options parameter only supports ignoreSearch, and cacheName.
Firefox Android Support complet 44Opera Android Support complet 41
Support complet 41
Support partiel 27
Notes
Notes The options parameter only supports ignoreSearch, and cacheName.
Safari iOS Support complet OuiSamsung Internet Android Support complet 6.0
Support complet 6.0
Support partiel 4.0
Notes
Notes The options parameter only supports ignoreSearch, and cacheName.

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Voir les notes d'implémentation.
Voir les notes d'implémentation.

Voir aussi