2011-01-12 15 views
21

Pracuję nad JavaScript dla strony, rozwijanej za pomocą przeglądarki Firefox, a po odświeżeniu strony nie widzę moich zmian. Plik JavaScript znajduje się w pliku zewnętrznym. Przeładowałem i odświeżyłem stronę kilka razy, ale stary plik JavaScript był nadal przechowywany w pamięci podręcznej. W końcu załadowałem stronę JavaScript bezpośrednio w przeglądarce, zobaczyłem stary skrypt, kliknąłem "przeładuj" i zobaczyłem moje zmiany.Wyczyść pamięć podręczną JavaScript zawiera w przeglądarce Firefox

Jak wyczyścić buforowane zewnętrzne pliki JavaScript? Będę musiał to również wiedzieć, gdy poinformuję klienta, że ​​zmiany zostały wprowadzone, tak aby nie widziały starej buforowanej funkcjonalności.

Odpowiedz

14

W Firefoksie można zainstalować plugin o nazwie Web Toolbar Twórca który ma appcache clear polecenie

myślę, że nie ma sposobu, aby to zrobić programowo, ale można dać podpowiedź do przeglądarki przy użyciu coś jak

<script type="text/javascript" src='js/my.js?x=<?php echo rand(0,100) ?>'></script> 
+3

Czasami używam tego również, gdy chcę, aby wszyscy aktualni użytkownicy otrzymali nową zawartość. Jednak zalecam używanie 'filemtime ('js/my.js') zamiast po prostu losowej wartości. – Thai

+2

Zauważyłem, że opcja "Wyłącz buforowanie" na pasku narzędzi programu Web Developer działa dla mnie :) – user151841

+0

Ten przykład służy do szybkiego testowania. Możesz odświeżyć plik JS za pomocą paska adresu przeglądarki internetowej. Na przykład:

1. Załóżmy, że na stronie internetowej www.foo.com 2. złożyć JS, bar.js jest włączone i przechowywane w katalogu głównym 3. Witryna jest buforowanie jest stara wersja witryna 4. Wyświetl plik JS bezpośrednio w przeglądarce za pomocą losowego ciągu zapytania (np. www.goo.com/bar.js?random=random) 5. Przeglądarka korzysta teraz ze zaktualizowanej wersji pliku JS. –

9

Przeglądarki mają ułatwienia dla użytkownika, aby wyczyścić pamięć podręczną. Zwykle jest to opcja menu. Nie można wymusić wyczyszczenia pamięci podręcznej.

Co może zrobić, to zorganizować skrypty mają być ładowane z adresów URL, które różnią się w zależności od numeru wersji (lub cokolwiek):

<script src='http://your.site.com/js/big_script.js?version=2'></script> 

Teraz po aktualizacji kodu aktualizacji strony, które użyj go:

<script src='http://your.site.com/js/big_script.js?version=3'></script> 

To jest inny adres URL i nie będzie w pamięci podręcznej.

+0

+1 za rozwiązanie, które powstrzymuje użytkownika końcowego przed otrzymaniem nieaktualnego kodu Javascript. – hangtwenty

6

Bardzo popularną techniką jest użycie parametru querystring. Mógłby wyglądać

<script src="http://www.somedomain.com/foobar.js?v=1></script> 

Jeśli zmienisz tę linię do v=2 przeglądarka załaduje skryptu jeśli był buforowane wcześniej.

1

Przeładowanie w trybie Shift często powoduje, że pamięć podręczna jest bardziej agresywna. Jednak naprawdę nie chcesz na tym polegać. Dobrą techniką jest wersja nazw plików Twojego zewnętrznego skryptu JavaScript i aktualizacja kodu HTML, który się do nich odnosi, gdy masz rev. W ten sposób możesz również lepiej polegać na buforowaniu (na przykład, ustawiając nagłówki w pamięci podręcznej na "publiczne" na swoim serwerze internetowym, a także określając długie czasy wygasania).

13
  • Opcja web developer toolbar add-on ma opcję wyłączenia buforowania.
  • Firebug również to robi. Jest w menu panelu Net i nazywa się Wyłącz pamięć podręczną przeglądarki.

buforować obejścia dla jednorazowo Firefox:

  • Kliknij przycisk przeładowania trzymając shift klucz.
  • Ctrl + F5
  • Ctrl + Przesunięcie + R lub Cmd + Przesunięcie + R
  • for other browsers

Niektóre Webhosting do buforowanie strony po stronie serwera. Podczas obchodzenia pamięci podręcznej przeglądarki internetowe wysyłają nagłówek informujący serwer, że nie powinien odpowiadać buforowanymi danymi.

Powiązane problemy