From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/fr/web/api/cachestorage/delete/index.html | 85 ++++++++++ files/fr/web/api/cachestorage/has/index.html | 80 ++++++++++ files/fr/web/api/cachestorage/index.html | 196 ++++++++++++++++++++++++ files/fr/web/api/cachestorage/keys/index.html | 83 ++++++++++ files/fr/web/api/cachestorage/match/index.html | 115 ++++++++++++++ files/fr/web/api/cachestorage/open/index.html | 93 +++++++++++ 6 files changed, 652 insertions(+) create mode 100644 files/fr/web/api/cachestorage/delete/index.html create mode 100644 files/fr/web/api/cachestorage/has/index.html create mode 100644 files/fr/web/api/cachestorage/index.html create mode 100644 files/fr/web/api/cachestorage/keys/index.html create mode 100644 files/fr/web/api/cachestorage/match/index.html create mode 100644 files/fr/web/api/cachestorage/open/index.html (limited to 'files/fr/web/api/cachestorage') diff --git a/files/fr/web/api/cachestorage/delete/index.html b/files/fr/web/api/cachestorage/delete/index.html new file mode 100644 index 0000000000..fa7fadf1b9 --- /dev/null +++ b/files/fr/web/api/cachestorage/delete/index.html @@ -0,0 +1,85 @@ +--- +title: CacheStorage.delete() +slug: Web/API/CacheStorage/delete +tags: + - API + - CacheStorage + - Experimental + - Reference + - Service Workers + - ServiceWorker + - delete +translation_of: Web/API/CacheStorage/delete +--- +

{{APIRef("Service Workers API")}}{{SeeCompatTable}}

+ +

La fonction delete() de l'interface {{domxref("CacheStorage")}} trouve l'objet {{domxref("Cache")}} correspondant à un cacheName, et si trouvé, supprime l'objet {{domxref("Cache")}} et retourne une {{jsxref("Promise", "Promesse")}} qui renvoie true. Si aucun objet {{domxref("Cache")}} n'est trouvé, elle retourne false.

+ +

Vous pouvez accéder à CacheStorage via la propriété globale {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}}.

+ +

Syntaxe

+ +
caches.delete(cacheName).then(function(true) {
+  // le cache est maintenant supprimé
+});
+
+ +

Paramètres

+ +
+
cacheName
+
Le nom du cache que vous souhaitez supprimer.
+
+ +

Retour

+ +

Une {{jsxref("Promise", "Promesse")}} qui renvoie true si l'objet {{domxref("Cache")}} est trouvé et supprimé, false sinon.

+ +

Exemples

+ +

Dans ce fragment de code, nous attendons un évènement, et bloquons avec un {{domxref("ExtendableEvent.waitUntil","waitUntil()")}}, qui nettoie les anciens, inutilisés, caches avant que le nouveau service worker soit activé. Nous avons ici une liste blanche contenant le nom du cache que nous voulons garder. Nous retournons les clés des caches dans l'objet {{domxref("CacheStorage")}} utilisant {{domxref("CacheStorage.keys")}}, pour ensuite vérifier que chaque clé est dans la liste blance. Sinon, nous la supprimons avec delete().

+ +
then.addEventListener('activate', function(event) {
+  var cacheWhitelist = ['v2'];
+
+  event.waitUntil(
+    caches.keys().then(function(keyList) {
+      return Promise.all(keyList.map(function(key) {
+        if (cacheWhitelist.indexOf(key) === -1) {
+          return caches.delete(key);
+        }
+      }));
+    })
+  );
+});
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Service Workers', '#cache-storage-delete', 'CacheStorage: delete')}}{{Spec2('Service Workers')}}Définition initiale.
+ +

Compatibilités des navigateurs

+ + + +

{{Compat("api.CacheStorage.delete")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/cachestorage/has/index.html b/files/fr/web/api/cachestorage/has/index.html new file mode 100644 index 0000000000..d28ba6eeb0 --- /dev/null +++ b/files/fr/web/api/cachestorage/has/index.html @@ -0,0 +1,80 @@ +--- +title: CacheStorage.has() +slug: Web/API/CacheStorage/has +tags: + - API + - CacheStorage + - Experimental + - Méthode + - Reference + - Service Workers + - ServiceWorker + - has +translation_of: Web/API/CacheStorage/has +--- +

{{APIRef("Service Workers API")}}{{SeeCompatTable}}

+ +

La méthode has() de l'interface {{domxref("CacheStorage")}} retourne une {{jsxref("Promise", "Promesse")}} qui renvoie true si un objet {{domxref("Cache")}} est égal au cacheName.

+ +

Vous pouvez accéder à CacheStorage via la propriété globale {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}}.

+ +

Syntaxe

+ +
caches.has(cacheName).then(function(true) {
+  // le cache existe!
+});
+
+ +

Paramètres

+ +
+
cacheName
+
Un  {{domxref("DOMString")}} représentant le nom de l'objet {{domxref("Cache")}} que vous cherchez dans le {{domxref("CacheStorage")}}.
+
+ +

Retour

+ +

Une {{jsxref("Promise", "Promesse")}} qui renvoie true si le cache existe.

+ +

Exemples

+ +

L'exemple suivant vérifie qu'un cache nommé 'v1' exists. Si c'est le cas, nous lui ajoutons une liste d'assets. Si non (la promesse has() est rejetée) alors nous exécutons une sorte d'initialisation du cache.

+ +
caches.has('v1').then(function() {
+  caches.open('v1').then(function(cache) {
+      return cache.addAll(myAssets);
+  });
+}).catch(function() {
+  someCacheSetupfunction();
+});;
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Service Workers', '#cache-storage-has', 'CacheStorage: has')}}{{Spec2('Service Workers')}}Définition initiale.
+ +

Compatibilités des navigateurs

+ + + +

{{Compat("api.CacheStorage.has")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/cachestorage/index.html b/files/fr/web/api/cachestorage/index.html new file mode 100644 index 0000000000..73138a4baf --- /dev/null +++ b/files/fr/web/api/cachestorage/index.html @@ -0,0 +1,196 @@ +--- +title: CacheStorage +slug: Web/API/CacheStorage +tags: + - API + - Cache de stockage + - Experimental + - Interface + - Reference + - Service Workers + - ServiceWorker +translation_of: Web/API/CacheStorage +--- +

{{APIRef("Service Workers API")}}{{SeeCompatTable}}

+ +

L'interface CacheStorage représente le stockage des objets {{domxref("Cache")}}.

+ +

L'interface :

+ + + +

Utilisez {{domxref("CacheStorage.open()")}} pour obtenir une instance {{domxref("Cache")}}.

+ +

Utilisez {{domxref("CacheStorage.match()")}} pour vérifier si une {{domxref("Request", "Requête")}} donnée est une clé dans l'un des objets {{domxref("Cache")}} que l'objet CacheStorage surveille.

+ +

Vous pouvez accéder à CacheStorage via la propriété globale {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}}.

+ +
Note: CacheStorage échouera systématiquement avec une SecurityError sur les domaines non certifiés (i.e. ceux qui n'utilisent pas HTTPS, bien que cette définition risque de devenir plus complexe dans le future). Pendant vos tests vous pouvez contourner ce comportement en cochant l'option "Enable Service Workers over HTTP (when toolbox is open)" dans les options Firefox Devtools / le menu gear.
+ +
Note: {{domxref("CacheStorage.match()")}} est une méthode de convenance. Il est possible d'implémenter une fonctionnalité équivalente pour matcher une entrée de cache en appelant {{domxref("CacheStorage.open()")}}, puis en retournant {{domxref("CacheStorage.keys()")}}, et en matchant les entrées voulues avec {{domxref("CacheStorage.match()")}}.
+ +

Méthodes

+ +
+
{{domxref("CacheStorage.match()")}} {{experimental_inline}}
+
Cherche si une {{domxref("Request")}} donnée est la clé de n'importe lequel des objets {{domxref("Cache")}} maintenus par le {{domxref("CacheStorage")}}, et retourne une {{jsxref("Promise", "Promesse")}} résolue en cet objet {{domxref("Cache")}}.
+
{{domxref("CacheStorage.has()")}} {{experimental_inline}}
+
Retourne une {{jsxref("Promise", "Promesse")}} qui est résolue en true si un objet {{domxref("Cache")}} qui correspond au cacheName existe.
+
{{domxref("CacheStorage.open()")}} {{experimental_inline}}
+
Retourne une {{jsxref("Promise", "Promesse")}} qui est résolue en l'objet {{domxref("Cache")}} qui correspond au cacheName (si il n'existe pas, un nouveau cache est créé).
+
{{domxref("CacheStorage.delete()")}} {{experimental_inline}}
+
Trouve l'objet {{domxref("Cache")}} correspondant au cacheName, et si il est trouvé, supprime l'objet {{domxref("Cache")}} et retourne une {{jsxref("Promise", "Promesse")}} résolue à true. Si aucun objet {{domxref("Cache")}} n'est trouvé, la {{jsxref("Promise", "Promesse")}} est résolue à false.
+
{{domxref("CacheStorage.keys()")}} {{experimental_inline}}
+
Retourne une {{jsxref("Promise", "Promesse")}} qui est résolue en un tableau qui contient toutes les chaînes correspondantes aux objets {{domxref("Cache")}} maintenus par le {{domxref("CacheStorage")}}. Cette méthode peut s'utiliser pour itérer sur une liste de tous les objets {{domxref("Cache")}}.
+
+ +

Exemples

+ +

Cet extrait de code est tiré de l'exemple MDN sw-test (lancer sw-test dans votre navigateur). Ce service worker script attends le déclenchement d'un {{domxref("InstallEvent")}}, puis lance {{domxref("ExtendableEvent.waitUntil","waitUntil")}} pour gérer la phase d'installation de l'app. Cela consiste à appeler {{domxref("CacheStorage.open")}} pour créer un nouveau cache, puis {{domxref("Cache.addAll")}} pour y ajouter une série d'assets.

+ +

Dans le second bloc de code, on attends le déclenchement d'un {{domxref("FetchEvent")}}. On construit ensuite une réponse spéciale comme suit :

+ +
    +
  1. Vérifier si il y a un match pour la requête dans le CacheStorage. Le cas échéant, servir ça.
  2. +
  3. Sinon, récupérer la requête sur le réseau, puis ouvrir le cache du premier bloc et y ajouter un clone de la requête grâce à {{domxref("Cache.put")}} (cache.put(event.request, response.clone()).)
  4. +
  5. En cas d'échec (e.g. car le réseau est inaccessible), retourner une réponse par défaut.
  6. +
+ +

Enfin, on retourne cette réponse en utilisant {{domxref("FetchEvent.respondWith")}}.

+ +
this.addEventListener('install', function(event) {
+  event.waitUntil(
+    caches.open('v1').then(function(cache) {
+      return cache.addAll([
+        '/sw-test/',
+        '/sw-test/index.html',
+        '/sw-test/style.css',
+        '/sw-test/app.js',
+        '/sw-test/image-list.js',
+        '/sw-test/star-wars-logo.jpg',
+        '/sw-test/gallery/',
+        '/sw-test/gallery/bountyHunters.jpg',
+        '/sw-test/gallery/myLittleVader.jpg',
+        '/sw-test/gallery/snowTroopers.jpg'
+      ]);
+    })
+  );
+});
+
+self.addEventListener('fetch', function(event) {
+  event.respondWith(caches.match(event.request).then(function(response) {
+    // caches.match() fonctionne toujours
+    // mais en cas de succès, la réponse aura une valeur
+    if (response !== undefined) {
+      return response;
+    } else {
+      return fetch(event.request).then(function (response) {
+        // la réponse ne peut être utilisée qu'une seule fois
+        // nous devons sauvegarder le clone pour mettre
+        // une copie en cache et servir le second
+        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');
+      });
+    }
+  }));
+});
+ +

Cet extrait montre comment l'API peut être utilisée en dehors du contexte d'un Service Worker, et utilise l'opérateur "await" pour un code beaucoup plus lisible.

+ +
// Essayer d'obtenir des données du cache, mais se rabattre sur la récupération en direct.
+async function getData() {
+   const cacheVersion = 1;
+   const cacheName    = `myapp-${ cacheVersion }`;
+   const url          = 'https://jsonplaceholder.typicode.com/todos/1';
+   let cachedData     = await getCachedData( cacheName, url );
+
+   if ( cachedData ) {
+      console.log( 'Récupération des données mises en cache' );
+      return cachedData;
+   }
+
+   console.log( 'Obtenir de nouvelles données' );
+
+   const cacheStorage = await caches.open( cacheName );
+   await cacheStorage.add( url );
+   cachedData = await getCachedData( cacheName, url );
+   await deleteOldCaches( cacheName );
+
+   return cachedData;
+}
+
+// Obtenir des données du cache.
+async function getCachedData( cacheName, url ) {
+   const cacheStorage   = await caches.open( cacheName );
+   const cachedResponse = await cacheStorage.match( url );
+
+   if ( ! cachedResponse || ! cachedResponse.ok ) {
+      return false;
+   }
+
+   return await cachedResponse.json();
+}
+
+// Delete any old caches to respect user's disk space.
+async function deleteOldCaches( currentCache ) {
+   const keys = await caches.keys();
+
+   for ( const key of keys ) {
+      const isOurCache = 'myapp-' === key.substr( 0, 6 );
+
+      if ( currentCache === key || ! isOurCache ) {
+         continue;
+      }
+
+      caches.delete( key );
+   }
+}
+
+try {
+   const data = await getData();
+   console.log( { data } );
+} catch ( error ) {
+   console.error( { error } );
+}
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Service Workers', '#cache-storage', 'CacheStorage')}}{{Spec2('Service Workers')}}Définition initiale.
+ +

Compatibilités des navigateurs

+ + + +

{{Compat("api.CacheStorage")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/cachestorage/keys/index.html b/files/fr/web/api/cachestorage/keys/index.html new file mode 100644 index 0000000000..650b9b4f53 --- /dev/null +++ b/files/fr/web/api/cachestorage/keys/index.html @@ -0,0 +1,83 @@ +--- +title: CacheStorage.keys() +slug: Web/API/CacheStorage/keys +tags: + - API + - CacheStorage + - Experimental + - Méthodes + - Reference + - Service Workers + - ServiceWorker + - keys +translation_of: Web/API/CacheStorage/keys +--- +

{{APIRef("Service Workers API")}}{{SeeCompatTable}}

+ +

La méthode keys() de l'interface {{domxref("CacheStorage")}} retourne une {{jsxref("Promise", "Promesse")}} qui renvoie une liste content les chaines de caractères correspondant à tous les noms des {{domxref("Cache")}} suivient par l'objet {{domxref("CacheStorage")}}. Utilisez cette méthode pour itérer sur une liste de tous les objets {{domxref("Cache")}}.

+ +

Vous pouvez accéder à CacheStorage via la propriété globale {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}}.

+ +

Syntaxe

+ +
caches.keys().then(function(keyList) {
+  // faire quelque-chose avec votre keylist
+});
+
+ +

Paramètres

+ +

Aucun.

+ +

Retour

+ +

Une {{jsxref("Promise", "Promesse")}} qui retourne une liste de noms de {{domxref("Cache")}} contenus dans un objet {{domxref("CacheStorage")}}.

+ +

Exemples

+ +

Dans ce fragment de code, nous attendons un évènement, et bloquons avec un {{domxref("ExtendableEvent.waitUntil","waitUntil()")}}, qui nettoie les anciens caches, inutilisés, avant que le nouveau service worker soit activé. Nous avons ici une liste blanche contenant le nom du cache que nous voulons garder. Nous retournons les clés des caches dans l'objet {{domxref("CacheStorage")}} utilisant {{domxref("CacheStorage.keys")}}, pour ensuite vérifier que chaque clé est dans la liste blance. Sinon, nous la supprimons avec delete().

+ +
then.addEventListener('activate', function(event) {
+  var cacheWhitelist = ['v2'];
+
+  event.waitUntil(
+    caches.keys().then(function(keyList) {
+      return Promise.all(keyList.map(function(key) {
+        if (cacheWhitelist.indexOf(key) === -1) {
+          return caches.delete(key);
+        }
+      });
+    })
+  );
+});
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Service Workers', '#dom-cachestorage-keys', 'CacheStorage: keys')}}{{Spec2('Service Workers')}}Définition initiale.
+ +

Compatibilités des navigateurs

+ + + +

{{Compat("api.CacheStorage.keys")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/cachestorage/match/index.html b/files/fr/web/api/cachestorage/match/index.html new file mode 100644 index 0000000000..42346f8fd0 --- /dev/null +++ b/files/fr/web/api/cachestorage/match/index.html @@ -0,0 +1,115 @@ +--- +title: CacheStorage.match() +slug: Web/API/CacheStorage/match +tags: + - API + - CacheStorage + - Experimental + - Méthode + - Reference + - Service Workers + - ServiceWorkers + - match +translation_of: Web/API/CacheStorage/match +--- +

{{APIRef("Service Workers API")}}{{SeeCompatTable}}

+ +

La fonction match() de l'interface {{domxref("CacheStorage")}} qu'une {{domxref("Request", "Requête")}} est la clé d'un objet {{domxref("Cache")}} object suivie par un objet {{domxref("CacheStorage")}} et retourne une {{jsxref("Promise", "Promesse")}} qui renvoie la {{domxref("Response", "Réponse")}} correspondante.

+ +

Vous pouvez accéder à CacheStorage via la propriété globale {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}}.

+ +

Les objets Cache sont cherchés par ordre de création.

+ +
Note: {{domxref("CacheStorage.match()", "caches.match()")}} est une méthode de commodité. Une fonctionnalité équivalente consiste à appeler {{domxref("cache.match()")}} sur chaque cache (dans l'ordre renvoyé par {{domxref("CacheStorage.keys()", "caches.keys()")}}) jusqu'à ce qu'une {{domxref("Response", "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 {{domxref("Request", "Requête")}} recherchée.
+
options {{optional_inline}}
+
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 {{domxref("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 {{domxref("Boolean")}} qui, quand défini à true, empêche l'opération de rapprochement de valider le verbe http de la {{domxref("Request", "Requête")}} http (normalement, seulement GET et HEAD sont authorisés) La valeur par défaut est false.
  • +
  • ignoreVary: Un {{domxref("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 {{domxref("DOMString")}} qui représente le cache dans lequel on recherche. 
  • +
+
+
+ +

Valeur retournée

+ +

Une {{jsxref("Promise", "Promesse")}} qui renvoie les {{domxref("Response", "Réponses")}} correspondante.

+ +

Exemples

+ +

Cet exemple est tiré du MDN sw-test example (voir sw-test running live). Nous attendons pour un évènement {{domxref("FetchEvent")}} et nous construisons une réponse comme suit:

+ +
    +
  1. Vérifier si une correspondance pour la requète est trouvée dans le {{domxref("CacheStorage")}} en utilisant {{domxref("CacheStorage.match")}}. Si oui, la servir.
  2. +
  3. Si non, ouvrire le cache v1 avec open(), mettre le réseau par défaut dans le cache avec {{domxref("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.
  4. +
  5. Si ceci échoue (e.g., parce que le réseau est inactif), retourner une réponse de secours.
  6. +
+ +
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écificationStatutCommentaire
{{SpecName('Service Workers', '#dom-cachestorage-match', 'CacheStorage: match')}}{{Spec2('Service Workers')}}Définition initiale.
+ +

Compatibilités des navigateurs

+ + + +

{{Compat("api.CacheStorage.match")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/cachestorage/open/index.html b/files/fr/web/api/cachestorage/open/index.html new file mode 100644 index 0000000000..a2c81af6f9 --- /dev/null +++ b/files/fr/web/api/cachestorage/open/index.html @@ -0,0 +1,93 @@ +--- +title: CacheStorage.open() +slug: Web/API/CacheStorage/open +tags: + - API + - CacheStorage + - Experimental + - Méthode + - Reference + - Service Workers + - ServiceWorkers + - open +translation_of: Web/API/CacheStorage/open +--- +

{{APIRef("Service Workers API")}}{{SeeCompatTable}}

+ +

La fonction open()de l'interface {{domxref("CacheStorage")}} retourne une {{jsxref("Promise", "Promesse")}} qui renvoie l'objet {{domxref("Cache")}} correspondant a un cacheName.

+ +

Vous pouvez accéder à CacheStorage via la propriété globale {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}}.

+ +
+

Note: Si le {{domxref("Cache")}} spécifié n'existe pas, un nouveau cache sera crée avec cacheName et retournera une {{jsxref("Promise", "Promesse")}} renvoyant le nouvel objet {{domxref("Cache")}}.

+
+ +

Syntaxe

+ +
caches.open(cacheName).then(function(cache) {
+  // faire quelque-chose avec le cache
+});
+
+ +

Paramètres

+ +
+
cacheName
+
Le nom du cache que vous voulez ouvrir.
+
+ +

Retour

+ +

Une {{jsxref("Promise", "Promesse")}} qui renvoie l'objet {{domxref("Cache")}} demandé.

+ +

Exemples

+ +

Cet exemple est tiré de l'exemple MDN sw-test (voir sw-test en direct). Ici, nous attendons qu'un {{domxref("InstallEvent")}} se déclenche, puis nous lançons {{domxref("ExtendableEvent.waitUntil", "waitUntil()")}} pour gérer le processus d'installation de l'application. Cela consiste à appeler CacheStorage.open() pour créer un nouveau cache, puis à utiliser {{domxref("Cache.addAll()")}} pour y ajouter une série d'éléments.

+ +
self.addEventListener('install', function(event) {
+  event.waitUntil(
+    caches.open('v1').then(function(cache) {
+      return cache.addAll([
+        '/sw-test/',
+        '/sw-test/index.html',
+        '/sw-test/style.css',
+        '/sw-test/app.js',
+        '/sw-test/image-list.js',
+        '/sw-test/star-wars-logo.jpg',
+        '/sw-test/gallery/bountyHunters.jpg',
+        '/sw-test/gallery/myLittleVader.jpg',
+        '/sw-test/gallery/snowTroopers.jpg'
+      ]);
+    })
+  );
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Service Workers', '#dom-cachestorage-open', 'CacheStorage: open')}}{{Spec2('Service Workers')}}Définition initiale.
+ +

Compatibilités des navigateurs

+ + + +

{{Compat("api.CacheStorage.open")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf