| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/API/Request/cache | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis janvier 2018.
Note : Cette fonctionnalit est disponible via les Web Workers.
La proprit en lecture seule cache de l'interface Request contient le mode de cache de la requte. Elle contrle la faon dont la requte interagit avec le cache HTTP du navigateur.
Une valeur de type RequestCache. Les valeurs disponibles sont :
default Le navigateur recherche une requte correspondante dans son cache HTTP.
no-store Le navigateur rcupre la ressource depuis le serveur distant sans d'abord consulter le cache, et ne mettra pas jour le cache avec la ressource tlcharge.
reload Le navigateur rcupre la ressource depuis le serveur distant sans d'abord consulter le cache, mais mettra ensuite jour le cache avec la ressource tlcharge.
no-cache Le navigateur recherche une requte correspondante dans son cache HTTP.
force-cache Le navigateur recherche une requte correspondante dans son cache HTTP.
only-if-cached Le navigateur recherche une requte correspondante dans son cache HTTP.
504 Gateway timeout.Le mode "only-if-cached" ne peut tre utilis que si le mode de la requte est "same-origin". Les redirections mises en cache seront suivies si la proprit redirect de la requte est "follow" et que les redirections ne violent pas le mode "same-origin".
// Tlcharger une ressource en contournant le cache, pour l'ignorer compltement.
fetch("some.json", { cache: "no-store" }).then((response) => {
/* consommer la rponse */
});
// Tlcharger une ressource en contournant le cache, mais mettre jour le cache HTTP avec la ressource tlcharge.
fetch("some.json", { cache: "reload" }).then((response) => {
/* consommer la rponse */
});
// Tlcharger une ressource en contournant le cache avec un serveur correctement configur qui enverra les bons en-ttes ETag et Date et grera correctement les en-ttes de requte If-Modified-Since et If-None-Match, on peut donc se fier la validation pour garantir une rponse frache.
fetch("some.json", { cache: "no-cache" }).then((response) => {
/* consommer la rponse */
});
// Tlcharger une ressource en pensant l'conomie ! Prfrer une rponse en cache mme prime pour conomiser la bande passante.
fetch("some.json", { cache: "force-cache" }).then((response) => {
/* consommer la rponse */
});
// Implmentation nave client du stale-while-revalidate.
// Prfrer une rponse en cache mme prime ; mais mettre jour si elle est trop ancienne.
// AbortController et signal pour permettre un meilleur nettoyage mmoire.
// En ralit, ce serait une fonction qui prend un chemin et une rfrence au contrleur car il faudrait changer la valeur
let controller = new AbortController();
fetch("some.json", {
cache: "only-if-cached",
mode: "same-origin",
signal: controller.signal,
})
.catch((e) =>
e instanceof TypeError && e.message === "Failed to fetch"
? { status: 504 } // Contournement pour Chrome, qui choue avec un TypeError
: Promise.reject(e),
)
.then((res) => {
if (res.status === 504) {
controller.abort();
controller = new AbortController();
return fetch("some.json", {
cache: "force-cache",
mode: "same-origin",
signal: controller.signal,
});
}
const date = res.headers.get("date"),
dt = date ? new Date(date).getTime() : 0;
if (dt < Date.now() - 86_400_000) {
// si plus vieux que 24 heures
controller.abort();
controller = new AbortController();
return fetch("some.json", {
cache: "reload",
mode: "same-origin",
signal: controller.signal,
});
}
// Autres conditions possibles
if (dt < Date.now() - 300_000)
// Si c'est plus vieux que 5 minutes
fetch("some.json", { cache: "no-cache", mode: "same-origin" }); // pas d'annulation ni de valeur de retour.
return res;
})
.then((response) => {
/* consommer la rponse (ventuellement prime) */
})
.catch((error) => {
/* Peut tre un AbortError/DOMException ou un TypeError */
});
| Spcification |
|---|
| Fetch # ref-for-dom-request-cache |
Cette page a t modifie le 16 fvr. 2026 par les contributeurices du MDN.
RequestCertaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |