Jak wyłączyć buforowanie w przeglądarce Firefox?

143

Podczas programowania muszę cały czas „czyścić pamięć podręczną” w Firefoksie, aby korzystał z najnowszej wersji plików JavaScript.

Czy jest jakieś ustawienie (about: config), aby całkowicie wyłączyć buforowanie plików JavaScript? A jeśli nie, dla wszystkich plików?

Thilo
źródło

Odpowiedzi:

229

Wpisz „about: config” w pasku adresu przeglądarki Firefox i ustaw:

browser.cache.disk.enable = false
browser.cache.memory.enable = false

Jeśli programujesz lokalnie lub używasz nowego atrybutu manifestu HTML5, być może będziesz musiał ustawić następujące informacje w about: config -

browser.cache.offline.enable = false
tst
źródło
jak mogłem nie wiedzieć o tym małym klejnocie? Wszystkie rodzaje gadżetów w about: config!
ABrowne
2
Nie ma dla mnie network.http.use-cache. Zmiana browser.cache.offline.enable nie robi dla mnie różnicy.
Curtis,
1
Nie wątpię, że jest to dobra odpowiedź, ale wydaje się, że nie jest to już prawdą w najnowszych kompilacjach Firefoksa (obecnie używam wersji deweloperskiej 47.0a2). Wyłączenie buforowania w ustawieniach programisty internetowego jest jednak dla mnie skuteczne.
JosephStyons,
61

Web Developer Toolbar ma możliwość buforowania wyłączyć co sprawia, że bardzo łatwo go włączyć i wyłączyć, gdy jest to potrzebne.

philnash
źródło
1
CTRL-F5 lub przytrzymanie klawisza Shift podczas klikania przycisku Wczytaj ponownie, jest tym, co robiłem w przeszłości, ale funkcja „Wyłącz pamięć podręczną” programu Web Developer Toolbar to świetny sposób na zrobienie tego. Nie musisz w ten sposób całkowicie wyłączać pamięci podręcznej Firefoksa.
Jon Onstott
1
Należy jednak pamiętać o włączeniu pamięci podręcznej po przetestowaniu. ;)
neurolabs
1
@Shanimal, to działa dla mnie w 14.0.1, możesz chcieć odinstalować / ponownie zainstalować lub coś.
Lucas
@Lucas doh! Elementy na serwerze, z którymi pracowałem, były buforowane, ale zapomniałem usunąć komentarz ... Dzięki.
Shanimal
1
To już nie działa, dopóki Chrispederick nie naprawi kilku nowych zmian w Firefoksie w najnowszej wersji. Wybrałbym rozwiązanie about: config, które jest lepsze dla programistów.
Ligemer
12

Czy próbowałeś użyć CTRL- F5do aktualizacji strony?

trochę
źródło
6
Naprawdę mam wątpliwości, czy to działa niezawodnie, przynajmniej w obecności ramek iframe i ramek.
Thilo,
2
dobrze, nie zawsze ładuje ponownie JS / CSS w ramce iframe, ale w Firefoksie możesz przynajmniej wrzucić tę ramkę do nowej karty i załadować ją ponownie.
scunliffe
Zawsze używałem Ctrl-F5 ... potem stwierdziłem, że nie ładuje moich najnowszych wersji plików js, w których pracowałem :( Byłem też w ramce iframe (wiem, że iframe to diabeł, nie mój wybór ).
Gromer
Ctrl-F5 nie resetuje buforowania plików javascript. to, co robi (głównie), to wyczyszczenie sesji i plików cookie, ale nie
skryptu
10

Nie ma określonej opcji wyłączania buforowania tylko dla JavaScript, będziesz musiał całkowicie wyłączyć buforowanie.

FireBug ma opcję wyłączenia pamięci podręcznej przeglądarki w menu rozwijanym na karcie Sieć.

kynan
źródło
8

Na tej samej stronie, na której chcesz wyłączyć buforowanie, wykonaj następujące czynności: Do Twojej wiadomości: wersja nad którą pracuję to 30.0

Możesz :

otwórz pasek narzędzi webdevelopera otwarty programista internetowy

i wybierz wyłącz pamięć podręczną

Następnie ponownie załaduje stronę z własnej (jesteś włączony) i wszystko zostanie ponownie odtworzone, a wszelkie dalsze żądania są ponownie wysyłane za każdym razem, a programista internetowy może być zawsze otwarty, aby mieć oko i upewnić się, że jest zawsze włączony (sprawdź) .

shareef
źródło
8

Narzędzia programistyczne Firefox 48

Umożliwia wyłączenie pamięci podręcznej tylko wtedy, gdy przybornik jest otwarty, co jest idealne do tworzenia stron internetowych:

  • F12
  • skrzynia biegów w prawym górnym rogu
  • przewiń w dół do góry Ustawienia zaawansowane
  • zaznacz "Wyłącz pamięć podręczną (gdy przybornik jest otwarty)"

wprowadź opis obrazu tutaj

https://stackoverflow.com/a/27397425/895245 ma podobną treść, ale od tego czasu pozycjonowanie nieco się zmieniło.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
źródło
1
Dzięki ... jest tam informacja (iw tym wątku) o ustawianiu network.http.use-cache na false ... ale w mojej wersji FF (53) to ustawienie już nie istnieje ... Ta technika jest znacznie lepsza tak czy siak.
mike gryzoń
7

Jeśli pracujesz z kodem po stronie serwera, możesz wygenerować losową liczbę i dołączyć ją na końcu src w następujący sposób ....

src = "yourJavascriptFile.js? randomNumber = 434534"

z randomNumber generowanym losowo za każdym razem.

RekrowYnapmoc
źródło
To jedyne rozwiązanie, które zadziałało dla mnie, poza ręcznym czyszczeniem pamięci podręcznej przeglądarki przy każdym odświeżaniu.
Curtis,
4

Wiem, że wskrzeszam starożytne pytanie, ale próbowałem dziś rozwiązać ten problem i znaleźć alternatywne rozwiązanie. Przełączanie buforowania, gdy chcę przetestować, nie było dla mnie do zaakceptowania, a jak wspominali inni, twarde odświeżanie (ctrl + shift + r) nie zawsze działa.

Zamiast tego zdecydowałem się umieścić w moim pliku vhost.conf (można to również zrobić w .htaccess) w moim środowisku deweloperskim:

<FilesMatch "\.(js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>

W moim środowisku deweloperskim zapewnia to, że pliki js i css są zawsze pobierane. Ponadto nie wpływa to na resztę mojego przeglądania, a także działa dla wszystkich przeglądarek, więc testowanie w chrome / ie itp. Jest również łatwe.

Znalazłem tutaj fragment kodu, a także kilka innych przydatnych sztuczek związanych z Apache: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess

Aby upewnić się, że moi klienci zawsze widzą najnowszą wersję w środowisku produkcyjnym, zwiększamy ciąg zapytania w js dołączonym do każdej aktualizacji, tj.

jquery.somefile.js?v=0.5

Zmusza to przeglądarki moich klientów do aktualizowania lokalnej pamięci podręcznej, gdy widzą nową kwerendę, ale następnie buforuje nową kopię do czasu ponownej aktualizacji pliku

Kevin Jhangiani
źródło
3

Najlepszą strategią jest zaprojektowanie witryny tak, aby tworzyła unikalny adres URL do plików JS, który jest resetowany za każdym razem, gdy następuje zmiana. W ten sposób buforuje, gdy nie nastąpiła zmiana, ale natychmiast ładuje się ponownie, gdy nastąpi jakakolwiek zmiana.

Konieczne byłoby dostosowanie do konkretnych narzędzi środowiska, ale jeśli używasz PHP / Apache, oto świetne rozwiązanie zarówno dla Ciebie, jak i dla użytkowników końcowych.

http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/

scunliffe
źródło
3

Możesz użyć CTRL-, F5aby przeładować z pominięciem pamięci podręcznej.

Możesz ustawić preferencje w przeglądarce Firefox, aby nie używać pamięci podręcznej

network.http.use-cache = false

Możesz skonfigurować serwer WWW, aby wysyłał nagłówki no-cache / Expires / Cache-Control dla plików js.

Oto przykład serwera WWW Apache.

Poklepać
źródło
czy to shift-f5 czy ctrl-f5?
Thilo,
3

Jeśli używasz FireBug, w rozwijanym menu zakładki Sieć znajduje się opcja wyłączenia pamięci podręcznej przeglądarki.

wprowadź opis obrazu tutaj

Nerdroid
źródło
Firebug przestaje działać.
K7AAY
1

Dwa ostatnie opublikowane rozwiązania mają zalety i wady, ale oba są świetnymi rozwiązaniami IMHO.

  1. Możesz lub nie chcieć, aby identyfikator sesji był osadzony w adresie URL w taki sposób, aby zwiększyć bezpieczeństwo. Ale w rozwoju nie powinno to mieć znaczenia, ale co, jeśli zapomnisz go usunąć? Czy to też naprawdę działa? Czy nie potrzebujesz czegoś takiego jak generator liczb sekwencyjnych (liczba trafień przechowywana w sesji, a może nawet jeśli 1 to 0, jeśli 0 to 1)?

  2. Dodanie identyfikatora sesji (lub dowolnego sekwencera) oznacza, że ​​musisz pamiętać, aby dodać go do każdego zasobu, którego nie chcesz buforować. Z jednej strony jest to lepsze, ponieważ możesz po prostu dołączyć identyfikator sesji tylko do tego zasobu, który aktywnie rozwijasz i testujesz. Z drugiej strony oznacza to, że musisz to zrobić i musisz pamiętać, aby usunąć to do produkcji.

  3. Modyfikacja pliku vhost.conf lub .htaccess ładnie załatwia sprawę bez konieczności pamiętania o dodawaniu i usuwaniu identyfikatora sesji. Ale wadą jest to, że wpłynie to na wydajność wszystkich zasobów js i css, a jeśli masz duże pliki, to spowolni.

Oba wydają się świetnymi, eleganckimi rozwiązaniami - zależy od Twoich potrzeb.

meem
źródło
1

Używam CTRL- SHIFT- DELETEktóry aktywuje funkcję prywatności, umożliwiając jednoczesne wyczyszczenie pamięci podręcznej, resetowanie plików cookie itp. Możesz nawet skonfigurować go tak, aby po prostu to robił, zamiast wyświetlać okno dialogowe z prośbą o potwierdzenie.

Pan Lśniący i Nowy 安 宇
źródło
1

W wyższych wersjach Firefoksa, takich jak Nightly, dostępna jest opcja o nazwie „wyłącz pamięć podręczną”, którą można znaleźć, klikając ikonę koła zębatego. Te opcje działają tylko w bieżącej sesji, co oznacza, że ​​po zamknięciu inspektora i ponownym uruchomieniu go musisz sprawdzić ponownie, jeśli chcesz wyłączyć przechwytywanie.

jiyinyiyong
źródło
Żałuję, że nie ma sposobu na globalne wyłączenie pamięci podręcznej. To bardzo irytujące, że muszę to sprawdzać za każdym razem, gdy otwieram inspektora.
Carlos Garcia
0

Po 2 godzinach przeglądania różnych alternatyw, to zadziałało.

Moim wymaganiem było wyłączenie buforowania plików js i css w mojej aplikacji internetowej zabezpieczonej wiosną. Ale jednocześnie buforowanie tych plików „w” określonej sesji.

Przekazywanie unikalnego identyfikatora przy każdym żądaniu jest jednym z zalecanych podejść.

A oto co zrobiłem: - Zamiast

<script language="javascript" src="js/home.js"></script>

użyłem

<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>

Wszelkie wady powyższego podejścia są mile widziane. Problemy z bezpieczeństwem ?

Darszan
źródło
0

W przeglądarce Firefox 45 opcje pamięci podręcznej dysku można ustawić, zmieniając wartość: browser.cache.disk.enable

Wartość można ustawić na stronie „about: config”.

Na http://kb.mozillazine.org/About:config_entries#Browser znalazłem następujący opis dla „browser.cache.disk.enable”:

Prawda (wartość domyślna): Użyj pamięci podręcznej dysku, do pojemności określonej w pliku browser.cache.disk.capacity Fałsz: Wyłącz pamięć podręczną dysku (ten sam efekt, co ustawienie browser.cache.disk.capacity na 0)

Daniel
źródło
0

Przede wszystkim można to łatwo zrobić, np. Za pomocą PHP, aby zmusić przeglądarkę do odnowienia plików na podstawie daty pamięci podręcznej (czasu wygaśnięcia). Jeśli potrzebujesz go tylko do celów eksperymentalnych, spróbuj użyć ctrl + shift + del, aby wyczyścić całą pamięć podręczną naraz w przeglądarce Firefox. Trzecim rozwiązaniem jest użycie wielu dodatków, które kończą się w Firefoksie, aby wyczyścić pamięć podręczną na podstawie linii czasowych.

Amir Ghorbani
źródło