Wymuszaj odświeżanie tylko plików JavaScript w Firefox i Chrome


64

Chcę usunąć tylko pliki JavaScript z moich przeglądarek internetowych (Firefox i Chrome). Robię debugowanie JavaScript i denerwujące jest to, że mój JS po prostu nie będzie aktualizowany za każdym razem, gdy zmieniam pliki JS. Jedyne, co mogę teraz zrobić, to wyczyścić pliki cookie, ale spowoduje to usunięcie całej historii przeglądania.

Jak mogę wyczyścić / odświeżyć pliki JavaScript, które zostały załadowane do moich przeglądarek bez usuwania innych plików?

Odpowiedzi:


42

Robię to sam dla rozwoju. Używam Ctrl+ F5. To jak wymuszone odświeżenie. Spowoduje to odświeżenie strony, w tym ponowne pobranie wszelkich plików JavaScript lub CSS, do których istnieją odniesienia, nawet jeśli były one buforowane.

NIE wyczyści niczego innego, na przykład historii przeglądania.

Pamiętaj jednak, że chociaż wiem, że działa to w przeglądarce Firefox i prawdopodobnie w Internet Explorerze, nie jestem pewien, czy Ctrl+ F5działa tak samo w Chrome.

Ponadto iegik mówi:

W niektórych przeglądarkach możesz użyć ` Ctrl+ Shift+ Rdo wykonania tego samego zadania.


Wspaniały! Zmieniam przyjętą odpowiedź na twoją, ponieważ twoje jest prostsze rozwiązanie
Graviton

Doceniam to ... Należy jednak pamiętać, że chociaż wiem, że działa to w przeglądarce Firefox i prawdopodobnie w IE, nie jestem pewien, czy CTRL-F5 działa tak samo w Chrome.
7wp

2
To samo z Chrome 21 beta na Win7 - odświeżenie strony za pomocą ctrl-f5 nie powoduje ponownego żądania pliku JS (używam Charlesa do podwójnej weryfikacji).
Artem Russakovskii

1
właściwie chrom traktuje najpierw ctrl + f5 jako normalne odświeżenie z założenia, kolejne ctrl + f5 (więcej niż jeden) w krótkim czasie wymuszą przeładowanie wszystkich źródeł
Zeela

1
W przypadku Chrome, F12 i kliknij prawym przyciskiem myszy przycisk przeładowania. superuser.com/questions/220179/…
Cees Timmerman

50

Z Chrome:

Począwszy od Chrome 15, otwórz Narzędzia programistyczne, kliknij koło zębate w lewym dolnym rogu ekranu i zaznacz pole wyboru Wyłącz pamięć podręczną .

Wyłącz pamięć podręczną w Chrome 15 i nowszych

W ten sposób będziesz mieć pewność, że zasoby są zawsze ponownie ładowane z serwera i nie musisz ręcznie czyścić pamięci podręcznej, co może również usuwać buforowane dane dla niepowiązanych witryn.


Dzięki za wskazówkę - właśnie sprawdziłem i ta opcja jest również w Chrome 14.
bity klawiszowe

Geniusz! To świetne znalezisko.
Randomblue 30.09.11

Genialnie, szukałem tego.
Artem Russakovskii

... i po prostu nie zapomnij odznaczyć tej opcji po zakończeniu.
Halil Özgür

Po drugim ujęciu wygląda na to, że te opcje są aktywne tylko wtedy, gdy devtools są widoczne: twitter.com/ChromiumDev/status/227356682890670080 (z stackoverflow.com/a/7000899/372654 )
Halil Özgür

8

Nie zgadzam się z @ 7wp. Ponieważ niektórzy użytkownicy końcowi nie znają funkcji Ctrl+ F5, a niektórzy nawet nie są świadomi różnic między przeglądarkami, a nawet istnienia innych przeglądarek (na przykład starszych), należy zmusić przeglądarkę do pobrania nowej kopii pliki JS / CSS.

Najlepszym rozwiązaniem jest dodanie znacznika czasu na końcu nazw plików .js / .css lub dodanie wersji svn, co również jest świetnym pomysłem.

<script src="js/myfile.js?t=<?=time()?>" type="text/javascript"></script>

5

Możesz spróbować wyczyścić tylko pamięć podręczną, a nie całe przeglądanie, historię, pliki cookie, hasła, zapisane dane formularzy i tak dalej (domyślnie).

W przeglądarce Firefox 3.5 przejdź do

Narzędzia »Wyczyść najnowszą historię ...

Następnie upewnij się, że wybrano tylko „Pamięć podręczna” przed wybraniem „Wyczyść teraz”.

W Chrome (nie wiem, jakiej konkretnej wersji używasz, ponieważ korzystam z wersji deweloperskich), przejdź do

Ikona klucza (Narzędzia) »Opcje» karta Osobiste rzeczy »Wyczyść dane przeglądania ...

Ponownie upewnij się, że zaznaczone jest tylko „Opróżnij pamięć podręczną”.

Możesz też spróbować otworzyć nową prywatną sesję w przeglądarce Firefox lub okno Incognito w Chrome; nie należy również buforować żadnych plików (w tym plików .JS), które są automatycznie pobierane i przetwarzane podczas przeglądania.


Incognito to prawdopodobnie sposób na Chrome.
mdoar

1

Użyłem małej sztuczki w witrynie, nad którą pracuję ... z tych samych powodów, co ty. Wprowadzam niewielkie zmiany i ładuję kod JavaScript według kodu JavaScript i chcę mieć pewność, że zawsze pracuję z bieżącym (niebuforowanym) skryptem.

Spróbuj zrobić kod JavaScript, który ładujesz do pliku PHP ... po prostu umieść <?php ?>na początku i włóż rozszerzenie .php.

var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");

// The Date added to the file doesn't effect the results but
// helps Internet Explorer be sure to refresh the data and
// not use cache

var d = new Date();

var t = d.getTime();

fileref.setAttribute("src", filename + ".php?date=" + t);

fileref.setAttribute("id", filename);

Ponieważ nazwa się zmienia, Internet Explorer uważa, że ​​jest to nowy plik;)


1
Nie trzeba zmieniać nazwy na „.php”. Jeśli wpiszesz „filename.js? T =” + t, wynik będzie taki sam. Możesz to zrobić również za pomocą „.css”. Wszystkie nasze systemy produkcyjne używają tej sztuczki, aby potwierdzić, że klienci używają odpowiednich plików treści.
Leonel Martins

1
Uwaga: zwykle używamy numeru wersji SVN zamiast daty / godziny. W ten sposób uzyskujemy korzyści z buforowania i odświeżamy je tylko wtedy, gdy faktycznie dokonamy zatwierdzenia.
Groo

Dzięki wielkie! Ta sztuczka całkowicie wymknęła mi się z głowy. Walczę z tym problemem od wielu dni i zrobię to za mnie. Po prostu umieszczam to na końcu
adresu

1

W Chrome wystarczy nacisnąć Ctrli kliknąć przycisk odświeżania. Odkryłem to przez przypadek.


To powoduje odświeżenie całej strony, nie sądzę, że odświeża tylko Javascript.
Ivo Flipse,

1

Otwieram plik JavaScript w osobnej zakładce, Shift+ odświeżam, sprawdzam, czy widzę najnowsze zmiany, a następnie Shift+ odświeżam rzeczywistą stronę (w moim przypadku ramkę w zestawie ramek, co wydaje się pogorszyć). Działa to prawie cały czas.



0

Przejdź do ustawień treści w Chrome, wyłącz JavaScript i zapisz.

Następnie włącz JavaScript ponownie.


0

Jeśli pracujesz z JavaScript i martwisz się o ponowne załadowanie strony w celu odzwierciedlenia zmian w JavaScript. Spróbuj użyć debugera Chrome, w którym możesz wprowadzać zmiany w załadowanych plikach JavaScript w czasie wykonywania i bez ponownego ładowania możesz przetestować nowe funkcje lub zmiany, które chcesz przetestować.


Witamy w Super User! Przeczytaj uważnie pytanie ponownie. Twoja odpowiedź nie odpowiada na pierwotne pytanie.
DavidPostill


0

Dodaj funkcję dynamicznej daty na końcu pliku JavaScript. Zmusi przeglądarkę do załadowania zaktualizowanego pliku JavaScript. Oznacza to, że dołączając plik .js, możesz dodać .... xyz.js?

< ? php echo date('l jS \of F Y h:i:s A') ? >

Oczywiście można to usunąć po zakończeniu debugowania i przygotowaniu do uruchomienia.


To nie jest Javascript.
Natalie Adams,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.