--- title: Cache.add() slug: Web/API/Cache/add tags: - API - Add - Cache - Experimental - Méthode - Reference - Service Worker - Service worker API - ServiceWorker translation_of: Web/API/Cache/add ---
{{APIRef("Service Workers API")}}{{SeeCompatTable}}
La méthode add() de l'interface {{domxref("Cache")}} accepte une URL, la récupère, et ajoute l'objet réponse qui en résulte dans le cache. La méthode add() est équivalent au code suivant :
fetch(url).then(function(response) {
if (!response.ok) {
throw new TypeError('bad response status');
}
return cache.put(url, response);
})
Pour des opérations plus complexes, il faut utiliser {{domxref("Cache.put","Cache.put()")}} directement.
Note: add() écrasera toute paire clé/valeur précedemment stockée en cache et qui correspond à la requête.
cache.add(request).then(function() {
//request a été ajoutée au cache
});
Une {{jsxref("Promise", "Promesse")}} qui est résolue en void.
| Exception | Arrive quand |
|---|---|
TypeError |
Le schéma d'URL n'est pas Le statut de la réponse n'est pas dans les 200 (i.e., une requête qui a échoué.) Cela peut arriver si la requête échoue, mais également si la requête est une cross-origin no-cors (auquel cas le statut retourné est systématiquement 0.) |
Ce bloc de code attends le déclenchement d'un {{domxref("InstallEvent")}}, puis lance {{domxref("ExtendableEvent.waitUntil","waitUntil")}} qui gère la phase d'installation de l'application. Cela consite à appeler {{domxref("CacheStorage.open")}} afin de créer un nouveau cache, puis à utiliser {{domxref("Cache.add")}} pour y ajouter des ressources.
this.addEventListener('install', function(event) {
event.waitUntil(
caches.open('v1').then(function(cache) {
return cache.add('/sw-test/index.html');
})
);
});
| Spécification | Statut | Commentaire |
|---|---|---|
| {{SpecName('Service Workers', '#dom-cache-add', 'Cache: add')}} | {{Spec2('Service Workers')}} | Définition initiale. |
{{Compat("api.Cache.add")}}