Was ist der Unterschied zwischen "Normales Neuladen", "Hartes Neuladen" und "Leeren Cache und hartes Neuladen" in Chrome?

342

Ich habe kürzlich diese neue Funktion in Chrome entdeckt:

Optionen neu laden

Ich kann den Unterschied zwischen Option 1 und Option 3 herausfinden, und diese Option 2 liegt wahrscheinlich dazwischen, aber ich kann nirgendwo genauere Informationen finden.

Kennt jemand das genaue Verhalten jeder der 3 Optionen?

Samuel Rossille
quelle
17
Könnten Sie "diese Funktion" erklären? Konkret: Wie greifen Sie darauf zu? Ich habe alle Arten von Rechtsklicks und Kontrollklicks ausprobiert, aber ich konnte es nicht verstehen. Welche Version ist das?
Joachim Sauer
83
@JoachimSauer Haha, das ist mein kleines Geheimnis ... Im Ernst, es ist sehr gut versteckt: Sie müssen den Aktualisierungsknopf drücken, ohne ihn sofort loszulassen, während die Entwicklerkonsole aktiv ist. Samuelrossille.com/home/blog-chrome-reload-options.html
Samuel Rossille
11
Erscheint auch durch Klicken mit der rechten Maustaste auf das Reload-Symbol (während Devtools geöffnet ist)
Costa
7
Funktioniert das für OSX Chrome? Ich kann es scheinbar nicht über Dev Tools öffnen und mit der rechten
Maustaste
6
Ich habe diese Funktionen gerade im Jahr 2016 zufällig gefunden ...
Edwin Yip

Antworten:

439

Normales Nachladen

Das gleiche wie drücken F5. Dadurch wird der Cache verwendet, aber während des Ladens der Seite wird alles erneut validiert, und es wird nach "304 Not Modified" -Antworten gesucht. Wenn der Browser das erneute Herunterladen zwischengespeicherter JavaScript-Dateien, Bilder, Textdateien usw. vermeiden kann, wird dies der Fall sein.


Schweres Nachladen

Verwenden Sie bei der Anforderung nichts im Cache. (entspricht SHIFT+ F5Keine Notwendigkeit, die Entwicklerkonsole zu öffnen.) Erzwingen Sie, dass der Browser alle JavaScript-Dateien, Bilder, Textdateien usw. erneut herunterlädt.


Leeren Sie den Cache und laden Sie ihn neu

Wenn der Cache leer ist, muss er natürlich neu geladen werden. Dadurch wird der Browser erneut gezwungen, alles erneut herunterzuladen. Wenn die Seite jedoch nachträgliche Downloads über JavaScript durchführt, die nicht Teil des Seitenladens waren, verwenden diese möglicherweise weiterhin den Cache. Hier hilft das Leeren des Caches, da sichergestellt wird, dass auch diese nicht verwendet werden zwischengespeicherte Dateien.


Hinweis : Diese Funktion ist nur verfügbar, wenn die Entwicklertools geöffnet sind.

Andrew Rasmussen
quelle
49
Weiß jemand, ob die dritte Option nur den Cache für die aktuelle Site leert, anstatt den gesamten Cache zu leeren?
Grinn
10
@Grinn: Eigentlich, jetzt wo ich darüber nachdenke, ist es wahrscheinlich der gesamte Cache. Der Zweck dieser Funktion besteht darin, nachträgliche Downloads zu löschen, die nicht nur auf eine "Site" beschränkt sind.
Andrew Rasmussen
13
Ich bin mir nicht sicher, was als "after-the-fact download via Javascript"? Kann jemand ein konkretes Beispiel geben?
Costa
4
@Costa Sie können Inhalte herunterladen, die ursprünglich nicht im DOM angegeben sind. Zum Beispiel durch Hinzufügen eines neuen <script> -Tags zu Ihrem DOM oder durch Verwenden von RequireJS usw. Jede AMD-basierte Bibliothek (wie RequireJS) lädt ihre Skripte grundsätzlich träge. In diesem Fall müssen Sie den Cache leeren, um sicherzustellen, dass wirklich alles neu geladen wird.
Domi
16
Es sollte beachtet werden, dass dies nur funktioniert, wenn die Entwicklertools geöffnet sind (F12). Es wäre schön, wenn dies eine Einstellung wäre, die immer verfügbar sein könnte, unabhängig davon, ob die Entwicklertools geöffnet sind oder nicht.
Scunliffe
4

Dies funktioniert auch unter Mac OS X. Öffnen Sie die Entwicklertools und klicken Sie dann auf die Schaltfläche zum erneuten Laden entweder auf 1. Sekundärklick (Rechtsklick für Rechtshänder) oder auf 2. Langes Klicken, auch bekannt als langes Drücken, um das Menü anzuzeigen.

Zusätzlich zu dieser Antwort werden beim Hard-Reload häufig Proxys, Content Delivery-Netzwerke und andere Remote-Caches aktualisiert.

Geben Sie hier die Bildbeschreibung ein

entkorken
quelle
"Durch hartes Neuladen werden häufig Proxys, Content Delivery-Netzwerke und andere Remote-Caches aktualisiert." → Können Sie es sichern? Haben Sie ein Zitat, das erklärt, warum dies der Fall wäre? Ich würde erwarten, dass das Hard Reload nur den gesamten lokalen Cache neu lädt und keine zusätzlichen Auswirkungen auf Remote-Server hat.
Denilson Sá Maia
Ich denke, Browser senden einen Cache-Control: no-cacheHeader. squid-web-proxy-cache.1019090.n4.nabble.com/… Ist deins?
dcorking
1
Ich habe einige Tests ... Going to the URL oder mit normalen Reload - 3 - Cache-bezogene Header gesendet: Cache-Control: max-age=0, If-Modified-Since, If-None-Match. Beim Hard Reload (mit oder ohne Leeren des Cache) wurden jedoch nur 2 Cache-bezogene Header gesendet: Cache-Control: no-cacheund Pragma: no-cache. Ja, der Browser sendet tatsächlich einen Header, in dem die Server nach einer neuen Version gefragt werden. Es liegt dann an den Servern (einschließlich Proxys), das Verhalten basierend darauf zu ändern.
Denilson Sá Maia
Großartig! Sie können das in meiner Antwort bearbeiten oder Ihre eigene Antwort schreiben. @ DenilsonSáMaia
dcorking
0

Mit der folgenden Methode können Sie den Cache nur für die problematische URL löschen. Es hat mir geholfen, als ich mit dem Umleitungscache von http zu https feststeckte.

  1. Öffnen Sie die Chrome-Entwicklertools unter Windows, die ich verwende F12
  2. Überprüfen Sie Preserve log, ob das Protokoll vor der Umleitung gespeichert werden soll
  3. Klicken Sie mit der rechten Maustaste auf die umgeleitete URL und Clear browser cache

Dadurch wird nur der gestörte Cache gelöscht, ohne den normalen Cache zu beeinträchtigen.

Sohail Ahmed
quelle