Jaka jest różnica między „normalnym przeładowaniem”, „twardym przeładowaniem” oraz „pustą pamięcią podręczną i twardym przeładowaniem” w Chrome?

343

Niedawno odkryłem tę nową funkcję w Chrome:

opcje przeładowania

Potrafię zrozumieć różnicę między opcją 1 a opcją 3, a ta opcja 2 jest prawdopodobnie czymś pośrednim, ale nigdzie nie mogę znaleźć dokładniejszych informacji.

Czy ktoś zna dokładne zachowanie każdej z 3 opcji?

Samuel Rossille
źródło
17
Czy możesz wyjaśnić „tę funkcję”? W szczególności: jak uzyskać do niego dostęp? Próbowałem wszelkiego rodzaju kliknięć prawym przyciskiem myszy, kliknięć z wciśniętym klawiszem Control, ale nie udało mi się. Co to za wersja?
Joachim Sauer
83
@JachachSauer Haha, to moja mała tajemnica ... Poważnie, jest bardzo dobrze ukryta: musisz nacisnąć przycisk odświeżania, nie zwalniając go natychmiast, gdy konsola programisty jest aktywna samuelrossille.com/home/blog-chrome-reload-options.html
Samuel Rossille,
11
Pojawia się również, klikając prawym przyciskiem myszy ikonę przeładowania (gdy Devtools jest otwarte)
Costa
7
Czy to działa w przypadku OSX Chrome? Nie mogę otworzyć go za pomocą Dev Tools i kliknąć prawym przyciskiem myszy / kliknąć + przytrzymać
nitsujri
6
Właśnie te funkcje znalazłem przypadkiem w 2016 roku ...
Edwin Yip

Odpowiedzi:

439

Normalne przeładowanie

To samo co naciskanie F5. Spowoduje to użycie bufora, ale ponowne sprawdzenie poprawności wszystkiego podczas ładowania strony, szukając odpowiedzi „304 niezmodyfikowane”. Jeśli przeglądarka może uniknąć ponownego pobierania buforowanych plików JavaScript, obrazów, plików tekstowych itp., Zrobi to.


Trudne przeładowanie

Nie używaj niczego w pamięci podręcznej podczas wysyłania żądania. (co jest równe SHIFT+ F5Nie ma potrzeby otwierania konsoli programisty) Wymuś, aby przeglądarka ponownie pobierała każdy plik JavaScript, obraz, plik tekstowy itp.


Opróżnij pamięć podręczną i uruchom ponownie ładowanie

Oczywiście, jeśli pamięć podręczna jest pusta, konieczne będzie jej ciężkie przeładowanie. To ponownie zmusi przeglądarkę do ponownego pobrania wszystkiego. Jeśli jednak strona pobierze jakiekolwiek pliki faktów do pobrania za pośrednictwem JavaScript, które nie były częścią ładowania strony, mogą one nadal korzystać z pamięci podręcznej, co pomaga w opróżnieniu pamięci podręcznej, ponieważ zapewnia, że ​​nawet one nie będą używać buforowane pliki.


Uwaga : ta funkcja jest dostępna tylko wtedy, gdy narzędzia programistyczne są otwarte.

Andrew Rasmussen
źródło
49
Czy ktoś wie, czy trzecia opcja po prostu opróżnia pamięć podręczną dla bieżącej witryny, a nie opróżnia całą pamięć podręczną?
Grinn 18.04.13
10
@Grinn: Właściwie teraz, kiedy o tym myślę, prawdopodobnie jest to cała pamięć podręczna. Istotą tej funkcji jest wyczyszczenie pobranych plików po fakcie, które nie są ograniczone tylko do jednej „strony”.
Andrew Rasmussen,
13
Nie jestem pewien, co uważa się za "after-the-fact download via Javascript"? Czy ktoś może podać konkretny przykład?
Costa
4
@Costa Możesz pobierać rzeczy, które początkowo nie są określone w DOM. Na przykład przez dodanie nowego znacznika <script> do DOM lub użycie RequireJS itp. Każda biblioteka oparta na AMD (taka jak RequireJS) zasadniczo ładuje swoje skrypty leniwie. W takim przypadku musisz opróżnić pamięć podręczną, aby upewnić się, że naprawdę wszystko będzie trudne do ponownego załadowania.
Domi
16
Należy zauważyć, że działa to tylko wtedy, gdy narzędzia programistyczne są otwarte (F12) Byłoby miło, gdyby było to ustawienie, które zawsze byłoby dostępne, niezależnie od tego, czy narzędzia programistyczne są otwarte, czy nie.
scunliffe
4

Działa to również w systemie Mac OS X. Otwórz narzędzia programistyczne, a następnie 1. przycisk ponownego załadowania: 1. kliknięcie dodatkowe (prawy przycisk myszy prawym przyciskiem myszy) lub 2. długie kliknięcie, czyli długie naciśnięcie, aby wyświetlić menu.

Oprócz tej odpowiedzi częste przeładowanie często powoduje odświeżenie serwerów proxy, sieci dostarczania treści i innych zdalnych pamięci podręcznych.

wprowadź opis zdjęcia tutaj

dorking
źródło
„Twarde przeładowanie często powoduje odświeżenie serwerów proxy, sieci dostarczania treści i innych zdalnych pamięci podręcznych”. → Czy możesz to zrobić? Czy masz jakieś wyjaśnienie, dlaczego tak się dzieje? Spodziewałbym się, że Hard Reload po prostu przeładuje całą lokalną pamięć podręczną i nie będzie miał dodatkowego wpływu na zdalne serwery.
Denilson Sá Maia
Myślę, że przeglądarki wysyłają Cache-Control: no-cachenagłówek. squid-web-proxy-cache.1019090.n4.nabble.com/… Czy twoje?
dcorking
1
Zrobiłem kilka testów ... Idąc do adresu URL lub używając Normal Odśwież wysłany 3 nagłówki związane Cache-: Cache-Control: max-age=0, If-Modified-Since, If-None-Match. Jednak w trakcie twardego przeładowywania (z opróżnieniem pamięci podręcznej lub bez niej) wysłano tylko 2 nagłówki związane z pamięcią podręczną: Cache-Control: no-cachei Pragma: no-cache. Tak, tak, przeglądarka rzeczywiście wysyła nagłówek z prośbą do serwerów o nową wersję; to od serwerów (w tym serwerów proxy) zależy zmiana zachowania na tej podstawie.
Denilson Sá Maia
Świetny! Możesz edytować to w mojej odpowiedzi lub napisać własną odpowiedź. @ DenilsonSáMaia
dcorking
0

Poniższa metoda pozwala wyczyścić pamięć podręczną tylko dla problematycznego adresu URL. Pomogło mi to, gdy utknąłem z pamięcią podręczną przekierowania http na https.

  1. Otwórz narzędzia programistyczne Chrome, w systemie Windows, którego używam F12
  2. Zaznacz, Preserve logaby zapisać dziennik przed przekierowaniem
  3. Kliknij prawym przyciskiem myszy przekierowany adres URL i Clear browser cache

Spowoduje to wyczyszczenie tylko problematycznej pamięci podręcznej bez wpływu na normalną pamięć podręczną.

Sohail Ahmed
źródło