Quelle est la différence entre «rechargement normal», «rechargement dur» et «cache vide et rechargement dur» dans Chrome?

343

J'ai récemment découvert cette nouvelle fonctionnalité dans Chrome:

options de rechargement

Je peux comprendre la différence entre l'option 1 et l'option 3, et cette option 2 est probablement quelque chose entre les deux, mais je ne trouve aucune information plus précise nulle part.

Quelqu'un connaît le comportement précis de chacune des 3 options?

Samuel Rossille
la source
17
Pourriez-vous expliquer "cette fonctionnalité"? Plus précisément: comment y accéder? J'ai essayé toutes sortes de clics droit, de contrôle-clics, ... mais je n'ai pas pu l'obtenir. De quelle version s'agit-il?
Joachim Sauer
83
@JoachimSauer Haha c'est mon petit secret ... Sérieusement, il est extrêmement bien caché: vous devez appuyer sur le bouton d'actualisation sans le relâcher immédiatement tandis que la console du développeur est active samuelrossille.com/home/blog-chrome-reload-options.html
Samuel Rossille
11
Apparaît également en cliquant avec le bouton droit sur l'icône de rechargement (alors que Devtools est ouvert)
Costa
7
Est-ce que cela fonctionne pour OSX Chrome? Je n'arrive pas à l'ouvrir via Dev Tools et faites un clic droit / cliquez + maintenez
nitsujri
6
Je viens de découvrir ces fonctionnalités en 2016 par accident ...
Edwin Yip

Réponses:

439

Recharge normale

La même chose que d'appuyer F5. Cela utilisera le cache mais revalidera tout pendant le chargement de la page, à la recherche de réponses "304 non modifiées". Si le navigateur peut éviter de retélécharger des fichiers JavaScript mis en cache, des images, des fichiers texte, etc., il le fera.


Rechargement dur

N'utilisez rien dans le cache lors de la demande. (ce qui est égal à SHIFT+ F5Pas besoin d'ouvrir la console développeur) Forcez le navigateur à télécharger à nouveau chaque fichier JavaScript, image, fichier texte, etc.


Cache vide et rechargement dur

Évidemment, si le cache est vide, il devra effectuer un rechargement dur. Cela forcera à nouveau le navigateur à tout télécharger à nouveau. Cependant, si la page effectue des téléchargements après le fait via JavaScript qui ne faisaient pas partie du chargement de la page, ceux-ci pourraient toujours utiliser le cache, ce qui est utile pour vider le cache car il garantit que même ceux-ci n'utiliseront pas fichiers mis en cache.


Remarque : Cette fonctionnalité n'est disponible que lorsque les outils de développement sont ouverts.

Andrew Rasmussen
la source
49
Est-ce que quelqu'un sait si la troisième option vide simplement le cache du site actuel, par opposition à vider tout le cache?
Grinn
10
@Grinn: En fait, maintenant que j'y pense, c'est probablement la totalité du cache. Le but de cette fonctionnalité est d'effacer les téléchargements après coup, qui ne se limitent pas à un seul "site".
Andrew Rasmussen
13
Je ne sais pas ce qui est considéré comme un "after-the-fact download via Javascript"? Quelqu'un peut-il donner un exemple concret?
Costa
4
@Costa Vous pouvez télécharger des éléments qui ne sont pas initialement spécifiés dans le DOM. Par exemple, en ajoutant une nouvelle balise <script> à votre DOM, ou en utilisant RequireJS etc. Toute bibliothèque basée sur AMD (telle que RequireJS) charge essentiellement ses scripts paresseusement. Dans ce cas, vous devez vider le cache pour vous assurer que tout est vraiment rechargé.
Domi
16
Il convient de noter que cela ne fonctionne que si les outils de développement sont ouverts (F12) Ce serait bien si c'était un paramètre qui pouvait toujours être disponible, que les outils de développement soient ouverts ou non.
scunliffe
4

Cela fonctionne également sous Mac OS X. Ouvrez les outils de développement, puis, sur le bouton de rechargement, soit 1. clic secondaire (clic droit pour la souris pour droitier), ou 2. clic long, alias appui long pour voir le menu.

En plus de cette réponse , le rechargement dur entraîne souvent le rafraîchissement des serveurs proxy, des réseaux de distribution de contenu et d'autres caches distants.

entrez la description de l'image ici

dcorking
la source
«Le rechargement dur entraîne souvent le rafraîchissement des proxys, des réseaux de diffusion de contenu et d'autres caches distants.» → Pouvez-vous le sauvegarder? Avez-vous une citation expliquant pourquoi ce serait le cas? Je m'attendrais à ce que le rechargement dur recharge simplement tout le cache local et n'aurait aucun effet supplémentaire sur les serveurs distants.
Denilson Sá Maia
Je pense que les navigateurs envoient un en- Cache-Control: no-cachetête. squid-web-proxy-cache.1019090.n4.nabble.com/… Est-ce le vôtre?
dcorking le
1
Je l' ai fait quelques tests ... Aller à l'URL ou à l' aide normale Recharger envoyé 3 têtes associées au cache: Cache-Control: max-age=0, If-Modified-Since, If-None-Match. Cependant, lors du rechargement dur (avec ou sans vidage du cache), seuls 2 en-têtes liés au cache ont été envoyés: Cache-Control: no-cacheet Pragma: no-cache. Donc, oui, le navigateur envoie en effet un en-tête demandant aux serveurs une nouvelle version; c'est ensuite aux serveurs (y compris les proxys) de changer le comportement en fonction de cela.
Denilson Sá Maia
Génial! Vous pouvez modifier cela dans ma réponse ou écrire votre propre réponse. @ DenilsonSáMaia
dcorking
0

La méthode suivante vous permet de vider le cache uniquement pour l'URL en difficulté. Cela m'a aidé lorsque j'étais coincé avec le cache de redirection http vers https.

  1. Ouvrir les outils de développement Chrome, dans Windows que j'utilise F12
  2. Cochez Preserve logpour enregistrer le journal avant la redirection
  3. Cliquez avec le bouton droit sur l'URL redirigée et Clear browser cache

Cela effacera uniquement le cache perturbé sans affecter le cache normal.

Sohail Ahmed
la source