Sur un Mac, c'est Shift+Command+R, ou en maintenant Shift enfoncé tout en cliquant sur le bouton de rechargement (par opposition à Command+R ou un clic normal pour un rafraîchissement régulier).
Quelques détails supplémentaires :
Pour Shift+Command+R, le cache est simplement ignoré et les ressources sont demandées comme si aucun cache n'existait.
Pour Command+R, Chrome émettra des requêtes If-Modified-Since
ou Etag
vers le serveur web, même pour les choses qui sont réellement mises en cache. Pour la plupart des contenus, sinon tous, le serveur devrait alors répondre avec 304 Not Modified
. Cela est vrai pour la plupart, voire la totalité, des navigateurs modernes.
La seule façon de forcer l'utilisation du cache (sans même que le navigateur ne demande d'éventuelles modifications) semble être de cliquer sur un lien de la page web, ou de suivre un lien marqué d'un signet, ou encore d'aller dans la barre d'adresse URL et d'y appuyer sur Retour (Command+L, Return). Cependant : un problème connu de longue date dans Chrome, Chrome Forced Refresh n'ignore pas le cache (et le plus récent Reload/Refresh ne rafraîchit pas ), ou peut-être en fait une fonctionnalité de WebKit, Les sous-ressources insérées dynamiquement ne sont pas revalidées même lorsque le document qui les contient est rechargé , fait que Chrome n'efface pas TOUS les caches liés lorsqu'il utilise les méthodes ci-dessus. Un développeur de Chrome explique :
L'onglet réseau des outils de développement montre une cascade de toutes les ressources au fur et à mesure de leur chargement. Il y a deux lignes verticales sur le côté droit… l'une d'entre elles est intitulée “Load event fired” en vol stationnaire. Tout ce qui se charge après ce point ne fait pas officiellement partie de la page (une page peut continuer à émettre des requêtes pendant des heures) […] donc il ne sera PAS “rafraîchi” avec une combinaison de f5. C'est par conception.
[…
Caching [of any resource, before and after the “Load event fired” line] est déterminé par les en-têtes HTTP de la réponse, et non par le moment où la requête a été émise.
Also note a @ChromiumDev’s tweet :
Chrome DevTools’ Disable Cache invalide le cache du disque (excellent pour le développement !), mais… seulement lorsque devtools est visible.