2009-12-09 23:52:52 +0000 2009-12-09 23:52:52 +0000
155
155
Advertisement

Jak zmusić Internet Explorer (IE), aby REALLY reloadował stronę?

Advertisement

Kiedy używam Internet Explorer 8 do testowania mojej aplikacji internetowej, często stwierdzam, że nie ładuje ona ponownie strony, więc nie widzę swoich zmian. Spowodowało to dużą stratę czasu i frustrację zastanawiając się dlaczego moja poprawka “nie zadziałała” - kiedy tak naprawdę przeglądarka nigdy nie załadowała poprawionej wersji.

Próbowałem przycisk Refresh. Próbowałem F5, Controll-F5, Controll-R, Control-Shift-R, trzymając Control podczas klikania na przycisk Refresh, wszystko co mogłem wymyślić - tak naprawdę nie ładuje nowej zawartości z serwera. Potwierdziłem to z Fiddler'em.

Jak mam powiedzieć IE “ Nie obchodzi mnie co myślisz, że masz w pamięci podręcznej, chcę reload strony - nie bardzo, ja znaczę to tym razem, szczerze mówiąc, chcę żebyś tak naprawdę poszedł do serwera i ściągnął wszystko ponownie”?

Advertisement

Odpowiedzi (12)

126
126
126
2009-12-09 23:57:24 +0000
  1. Wybierz Narzędzia \NOpcje internetowe.
  2. Kliknij przycisk Ustawienia w Historii przeglądania.
  3. Wybierz przycisk radiowy przy każdej wizycie na stronie.
  4. Kliknij OK aby zamknąć okno Ustawienia.
  5. Kliknij OK aby zamknąć okno Opcje internetowe.
43
43
43
2010-07-08 18:30:53 +0000

Ponieważ stwierdzono, że IE8 jest przeglądarką, można nacisnąć klawisz F12, aby otworzyć narzędzia programistyczne i wybrać menu Cache na górze, a następnie zawsze odświeżać z serwera, aby ominąć cache.

W skrócie, Nacisnąć klawisz F12. Kliknij Cache -> Always Refresh from Server

Możesz po prostu wyczyścić pamięć podręczną również tutaj, jeśli jest to pożądane działanie. Opcja Always Refresh nie jest opcją globalną i nie utrudni ogólnej wydajności w IE.

IE7 również posiada narzędzia programistyczne, ale muszą być one zainstalowane oddzielnie. Możesz również użyć narzędzi IE8 dev do uruchamiania przeglądarki w trybie IE7.

22
Advertisement
22
22
2009-12-10 00:38:04 +0000

Ctrl+F5 w IE przeładowuje stronę ignorując cache

19
19
19
2009-12-10 01:31:08 +0000

IE jest bardzo chętna do tworzenia stron w pamięci podręcznej, nawet jeśli mówisz jej, aby nie tworzyła nagłówków w pamięci podręcznej. Microsoft KB 234067 wyjaśnia wymagane zachęty. Krótko mówiąc, należy dostarczyć następujące nagłówki.

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

Ustawienie Expires = -1 (zalecane w artykule KB) powinno działać dla większości frameworków; przeglądarki są zobowiązane do traktowania nieprawidłowych formatów daty jak w przeszłości RFC 2616 ).

W . NET, można to zrobić na zasadzie ziarnistości strony po stronie, używając tego zestawu metod przed wywołaniem strony:

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/ Pracuje dobrze dla MVC3.0.

6
Advertisement
6
6
2009-12-09 23:58:04 +0000

W zakładce Sieć na pasku narzędzi programisty sieciowego znajduje się przycisk do łatwego czyszczenia pamięci podręcznej. Zwykle używam go w przypadku, który opisujesz.

Nie jest idealny, ponieważ możesz nie chcieć czyścić całego cache'a, ale ponieważ nie używam IE do ogólnego przeglądania, to działa dla mnie.

4
4
4
2011-04-01 03:47:03 +0000

Dzieje się tak nadal w IE9. Niesamowitą odpowiedzią jest przycisk Ctrl-Shift-Refresh

3
Advertisement
3
3
2009-12-10 00:14:40 +0000

Nawiasem mówiąc, problem będzie prawdopodobnie istniał również dla osób odwiedzających Twoją stronę internetową. Widziałem następujący pomysł w książce AJAXa…

Użyj PHP, aby dodać losowy token do aktualnego adresu URL, tak aby przeglądarka została oszukana i pomyślała, że jest to osobna strona.

2
2
2
2009-12-09 23:58:50 +0000

Sam miałem ten sam problem. Uważam, że jedynym sposobem, aby to zrobić, jest wyczyszczenie pamięci podręcznej (Safety -> Delete Browsing History). Sprawdź tylko “Tymczasowe pliki internetowe”.

Mam nadzieję, że to pomoże.

2
Advertisement
2
2
2010-11-17 15:36:29 +0000

Przytrzymaj wciśnięty klawisz Alt lub ctrl po kliknięciu przycisku odświeżania.

1
1
1
2009-12-10 01:49:44 +0000

Wiem, że to może wydawać się trochę dziwne… ale jedną rzeczą, którą ostatnio zauważyłem, jest to, że czasami otrzymujesz różne wyniki w zależności od tego, jak “odświeżysz”. Widziałem następujące zachowanie:

F5 > ładunki z pamięci podręcznej bez odświeżania, Alt+D, ENTER > really refreshes omijając pamięć podręczną. (Alt+D można zastąpić kliknięciem w pasku adresu)

1
Advertisement
1
1
2012-08-22 18:35:56 +0000

F12 -> CTRL+R jest nieco szybszy dla IE9+. Jak wspominano, IE nie oczyszcza pamięci podręcznej bardzo inteligentnie jak Chrome.

1
1
1
2010-08-12 02:58:55 +0000

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

Oprócz losowego podejścia do tokena, co zawsze robię, aby wymusić całkowite przeładowanie (żądanie) strony i wszystkich zależnych od niej 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.

Advertisement
Advertisement