Jak zmusić Internet Explorera (IE) do NAPRAWDĘ ponownego załadowania strony?

154

Podczas testowania aplikacji internetowej przy użyciu Internet Explorera 8 często okazuje się, że nie ładuje strony ponownie, więc nie widzę moich zmian. Spowodowało to wiele straconego czasu i frustrację, zastanawiając się, dlaczego moja poprawka „nie działała” - kiedy tak naprawdę przeglądarka nigdy nie załadowała stałej wersji.

Próbowałem przycisk Odśwież. Próbowałem F5, Control- F5, Control- R, Control- Shift- R, przytrzymując Controlpodczas klikania przycisku Odśwież wszystko, co mogłem wymyślić - tak naprawdę nie ładuje nowej zawartości z serwera. Potwierdziłem to za pomocą Fiddlera.

Jak powiedzieć IE: „ Nie dbam o to, co według ciebie zapisałeś w pamięci podręcznej, chcę ponownie załadować stronę - nie, naprawdę, mam na myśli to tym razem, szczerze do Boga, chcę, żebyś naprawdę poszedł na serwer i pobrać wszystko ponownie ”?

EMP
źródło
2
Może użyć prywatnego okna przeglądania?
Josh Lee,
3
Czy to możliwe, że Twój serwer internetowy wyświetla starą stronę (przez pamięć podręczną) zamiast nowej wersji? Nie ma znaczenia, ile razy przeładujesz w takim przypadku.
Michael Todd,
1
Michael, nie, sprawdziłem w Fiddler, że IE nie pobiera zawartości strony z serwera.
EMP,
Control + F5 mija pamięć podręczną, to dziwne, jeśli nie ...
Tamara Wijsman
2
Najlepsze sformułowanie pytania, które do tej pory spotkałem na StackExchange!
user785529,

Odpowiedzi:

126
  1. Wybierz Narzędzia >> Opcje internetowe .
  2. Kliknij przycisk Ustawienia w Historii przeglądania .
  3. Wybierz przycisk radiowy Za każdym razem, gdy odwiedzam stronę internetową .
  4. Kliknij przycisk OK, aby zamknąć okno dialogowe Ustawienia.
  5. Kliknij przycisk OK, aby zamknąć okno dialogowe Opcje internetowe.
Gonzalo
źródło
3
Jeśli tak
postąpiłeś
34
Może to zaszkodzić ogólnej wydajności przeglądania, ale tylko wtedy, gdy przeglądasz ogólnie za pomocą IE ...
Joel Mueller
3
Ev: Strona ta jest zwykle naprawiana przez zmianę adresów URL wszystkich skryptów i arkuszy stylów za każdym razem, gdy dotkniesz kodu, zazwyczaj poprzez dodanie ?version-numbersufiksu ciągu zapytania.
bobince,
4
„Za każdym razem, gdy odwiedzam stronę” prawdopodobnie nie robi tego, co myślisz. Zobacz fiddler2.com/redir/?id=httpperf
EricLaw
6
Zgadzam się z @EricLaw, jeśli użyjesz Fiddlera, zobaczysz, że pliki powiązane ze stroną czasami nie są ładowane ponownie, nawet jeśli ustawione jest „Za każdym razem, gdy odwiedzam stronę”. Użyj menu paska narzędzi IE: Pamięć podręczna> Zawsze odświeżaj z serwera lub przycisk Wyczyść pamięć podręczną w Fiddler.
Phillip Ngan,
43

Ponieważ stwierdzono, że IE8 jest przeglądarką, możesz nacisnąć, F12aby otworzyć narzędzia programistyczne i wybrać menu Pamięć podręczna u góry, a następnie zawsze odświeżaj z serwera, aby pominąć pamięć podręczną.

Krótko mówiąc, naciśnijF12 . Kliknij opcję Pamięć podręczna -> Zawsze odświeżaj z serwera

Możesz również wyczyścić pamięć podręczną tutaj, jeśli jest to pożądana czynność. Opcja Zawsze odświeżaj nie jest opcją globalną i nie wpłynie negatywnie na ogólną wydajność w IE.

IE7 ma również narzędzia programistyczne, ale należy je zainstalować osobno. Możesz także użyć narzędzi programistycznych IE8 do uruchomienia przeglądarki w trybie IE7.

Brandon
źródło
+1 za rozwiązanie tego problemu bez użycia opcji globalnej.
Marcus Riemer,
Podobnie jak tutaj , to wciąż nie zawsze odświeża całą zawartość. Nie wiem też, czy to ponowne ładowanie jest dobre dla adresów URL - każde okno wydaje się mieć czasami swój F12. Jest to bardziej dokładny sposób, jeśli masz dostęp do javascript.
ruffin
1
Jak to zrobić w IE 11? Nie mogę znaleźć opcji pamięci podręcznej.
David Thielen,
4
W IE 11 ta opcja jest pod F12 -> Sieć -> 3 ikona od lewej.
Den
22

Ctrl+ F5w IE ponownie ładuje stronę ignorując pamięć podręczną

mfeingold
źródło
26
Nie, nie ma. Wiem, że czasami ignoruje pamięć podręczną, ale nie przez cały czas.
EMP,
16
Ctrl + F5 zawsze przeładowuje stronę z serwera. To, co niekoniecznie robi, to przeładowanie dodatkowych plików, do których odwołuje się strona
2
W porządku - ale potrzebuję go, aby przeładować WSZYSTKO.
EMP,
1
CTRL + F5 powinien wykonać pełne odświeżenie strony i wszystkich jej zasobów. Wywołania wykonane za pomocą XMLHTTPRequest mogą później zostać zapisane w pamięci podręcznej (jeśli nie chcesz ich buforować, wyślij odpowiednie nagłówki bez pamięci podręcznej). Jedynym zastrzeżeniem jest to, że jeśli dana strona to XML, to tak naprawdę jest ładowana za pośrednictwem MSXML, i że DocHost NIE respektuje CTRL + Odśwież poprawnie.
EricLaw
3
ctrl + f5 nie zawsze przeładowuje wszystko z serwera. W moich testach javascript zawarty w pliku html nie ładuje się ponownie po naciśnięciu ctrl-f5, nawet jeśli strona się zmieniła.
rcarver
18

IE bardzo chętnie buforuje strony, nawet jeśli mówisz, że nie ma tego przez nagłówki pamięci podręcznej. Microsoft KB 234067 wyjaśnia wymagane inkantacje. Krótko mówiąc, musisz dostarczyć następujące nagłówki.

Pragma: no-cache
Cache-Control: no-cache
Expires: <some time in the past>

Ustawienie Expires = -1(zgodnie z zaleceniami w artykule bazy wiedzy) powinno działać w przypadku większości platform; przeglądarki są zobowiązane do traktowania nieprawidłowych formatów dat jak w przeszłości ( RFC 2616 ).

W .NET można to zrobić w trybie szczegółowości strona po stronie, korzystając z tego zestawu metod przed wywołaniem strony internetowej:

HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Response.Cache.SetValidUntilExpires(false);
HttpContext.Response.Cache.SetRevalidation(System.Web.HttpCacheRevalidation.AllCaches);
HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
HttpContext.Response.Cache.SetNoStore();

patrz: http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ Działa dobrze w przypadku MVC3.0.

Marcelo Cantos
źródło
1
Nieprawdziwy. IE6 + w pełni szanuje wszystkie nagłówki blokujące pamięć podręczną. fiddler2.com/redir/?id=httpperf
EricLaw
To wszystko bardzo dobrze, ale nie pomaga WRT na pytanie.
Matthias Urlichs,
6

Karta Sieć na pasku narzędzi dla programistów stron internetowych ma przycisk ułatwiający wyczyszczenie pamięci podręcznej. Zwykle używam tego w opisywanym przypadku.

Nie jest to idealne rozwiązanie, ponieważ możesz nie chcieć wyczyścić całej pamięci podręcznej, ale ponieważ nie używam IE do ogólnego przeglądania, działa dla mnie.

pkaeding
źródło
4

Nadal dzieje się tak w IE9. O dziwo, odpowiedź brzmi Ctrl- Shiftprzycisk - Odśwież

PandaWood
źródło
Czy działa to inaczej niż przycisk Ctrl-Refresh?
Jon Onstott,
3

Nawiasem mówiąc, problem prawdopodobnie będzie istniał również dla osób przeglądających Twoją witrynę. W książce AJAX widziałem następujący pomysł ...

Użyj PHP, aby dodać losowy token do bieżącego adresu URL, dzięki czemu przeglądarka podejrzewa, że ​​jest to osobna strona.

Mosze
źródło
Sprawia, że ​​adresy URL są brzydkie.
LawrenceC
2

Sam miałem ten sam problem. Uważam, że jedynym sposobem na to jest wyczyszczenie pamięci podręcznej (Bezpieczeństwo -> Usuń historię przeglądania). Zaznacz tylko „Tymczasowe pliki internetowe”.

Mam nadzieję że to pomoże.

jchapa
źródło
2

Przytrzymaj klawisz altlub ctrlpodczas klikania przycisku odświeżania.

niaccm
źródło
1

Zgadzam się, że dodanie losowego tokena do adresu URL jest najbardziej niezawodnym rozwiązaniem, a po jego wdrożeniu użytkownik nie musi nic robić.

Oprócz losowego tokena, co zwykle robię, aby wymusić całkowite przeładowanie (żądanie) strony i wszystkich zależnych plików, po prostu umieszczam kursor na końcu adresu URL i naciskam Enter. Działa za każdym razem ... i używam IE 8.

Nocnik
źródło
1

F12-> CTRL+ Rjest nieco szybszy dla IE9 +. Jak wspomnieli ludzie, IE nie czyści pamięci podręcznej zbyt inteligentnie, jak Chrome.

Chris S.
źródło
1

Wiem, że to może wydawać się nieco dziwne ... ale jedną z rzeczy, które ostatnio zauważyłem, jest to, że czasami uzyskujesz różne wyniki w zależności od tego, JAK „odświeżysz”. Widziałem następujące zachowanie:

F5> ładuje z pamięci podręcznej bez odświeżania,
Alt+ D, ENTER> naprawdę odświeża pomijając pamięć podręczną.
( Alt+ Dmożna zastąpić kliknięciem na pasku adresu)

eidylon
źródło