Antworten:
Geben Sie "about: config" in die Firefox-Adressleiste ein und legen Sie Folgendes fest:
browser.cache.disk.enable = false
browser.cache.memory.enable = false
Wenn Sie lokal entwickeln oder das neue Manifestattribut von HTML5 verwenden, müssen Sie möglicherweise auch Folgendes festlegen: config -
browser.cache.offline.enable = false
Die Webentwickler-Symbolleiste bietet eine Option zum Deaktivieren des Caching, wodurch es sehr einfach ist, es bei Bedarf ein- und auszuschalten.
Haben Sie zu verwenden versucht CTRL- F5die Seite zu aktualisieren?
Auf derselben Seite, auf der Sie das Caching deaktivieren möchten, gehen Sie wie folgt vor: Zu Ihrer Information: Die Version, an der ich arbeite, ist 30.0
Sie können :
Danach wird die Seite von selbst neu geladen (Sie sind eingeschaltet) und alles wird erneut zwischengespeichert, und jede weitere Anfrage wird jedes Mal erneut gespeichert. Sie können den Webentwickler immer offen halten, um ein Auge zu behalten und sicherzustellen, dass sie immer aktiviert ist (überprüfen). .
Firefox 48-Entwicklertools
Ermöglicht das Deaktivieren des Cache nur, wenn die Toolbox geöffnet ist. Dies ist ideal für die Webentwicklung:
https://stackoverflow.com/a/27397425/895245 hat einen ähnlichen Inhalt, aber die Positionierung hat sich seitdem etwas geändert.
Wenn Sie mit serverseitigem Code arbeiten, können Sie eine Zufallszahl generieren und diese auf folgende Weise an das Ende des src anhängen ...
src = "yourJavascriptFile.js? randomNumber = 434534"
wobei die randomNumber jedes Mal zufällig generiert wird.
Ich weiß, dass ich eine alte Frage wiederbelebe, aber ich habe heute versucht, dieses Problem zu lösen und eine alternative Lösung zu finden. Das Umschalten des Caching, wenn ich testen möchte, war für mich nicht wirklich akzeptabel, und wie andere bereits erwähnt haben, funktioniert die harte Aktualisierung (Strg + Umschalt + R) nicht immer.
Stattdessen habe ich mich dafür entschieden, Folgendes in meine vhost.conf-Datei (kann auch in .htaccess ausgeführt werden) in meiner Entwicklungsumgebung einzufügen:
<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>
In meiner Entwicklungsumgebung stellt dies sicher, dass js und css immer abgerufen werden. Außerdem wirkt es sich nicht auf den Rest meines Browsings aus und funktioniert auch für alle Browser, sodass das Testen in Chrome / dh usw. ebenfalls einfach ist.
Wir haben das Snippet hier gefunden, einige andere nützliche Apache-Tricks: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess
Um sicherzustellen, dass meine Kunden immer die neueste Version in der Produktion sehen, erhöhen wir die Abfragezeichenfolge auf dem js-Include bei jedem Update, d. H.
jquery.somefile.js?v=0.5
Dies zwingt die Browser meiner Clients, ihren lokalen Cache zu aktualisieren, wenn sie einen neuen Querystring sehen, aber dann die neue Kopie zwischenspeichern, bis die Datei erneut aktualisiert wird
Die beste Strategie besteht darin, Ihre Site so zu gestalten, dass eine eindeutige URL zu Ihren JS-Dateien erstellt wird, die bei jeder Änderung zurückgesetzt wird. Auf diese Weise wird es zwischengespeichert, wenn keine Änderung vorgenommen wurde, aber sofort neu geladen, wenn eine Änderung auftritt.
Sie müssten sich an Ihre spezifischen Umgebungstools anpassen. Wenn Sie jedoch PHP / Apache verwenden, ist dies eine großartige Lösung für Sie und die Endbenutzer.
http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/
Sie können CTRL- verwenden F5, um den Cache unter Umgehung neu zu laden.
Sie können in Firefox festlegen, dass der Cache nicht verwendet wird
network.http.use-cache = false
Sie können Ihren Webserver so einrichten, dass er Header ohne Cache / Expires / Cache-Control für die JS-Dateien sendet.
Hier ist ein Beispiel für einen Apache-Webserver.
Die letzten beiden veröffentlichten Lösungen haben Vor- und Nachteile, aber beide sind meiner Meinung nach großartige Lösungen.
Möglicherweise möchten Sie Ihre Sitzungs-ID so in Ihre URL einbetten, um die Sicherheit zu erhöhen. Aber in der Entwicklung sollte das keine Rolle spielen, aber was ist, wenn Sie vergessen, es zu entfernen? Funktioniert das auch wirklich? Würden Sie nicht so etwas wie einen fortlaufenden Zahlengenerator benötigen (in der Sitzung gespeicherte Trefferanzahl oder vielleicht sogar nur, wenn 1 dann 0, wenn 0 dann 1)?
Wenn Sie eine Sitzungs-ID (oder einen anderen Sequenzer) hinzufügen, müssen Sie daran denken, sie jeder Ressource hinzuzufügen, die nicht zwischengespeichert werden soll. Einerseits ist dies besser, da Sie Ihre Sitzungs-ID nur in die Ressource einfügen können, die Sie aktiv entwickeln und testen. Auf der anderen Seite bedeutet dies, dass Sie dies tun müssen und daran denken müssen, dies für die Produktion zu entfernen.
Das Ändern der Datei vhost.conf oder der Datei .htaccess macht den Trick gut, ohne dass Sie daran denken müssen, die Sitzungs-ID hinzuzufügen und zu entfernen. Der Nachteil ist jedoch, dass die Leistung aller JS- und CSS-Ressourcen beeinträchtigt wird. Wenn Sie große Dateien haben, wird dies Sie verlangsamen.
Beides scheint eine großartige, elegante Lösung zu sein - hängt von Ihren Bedürfnissen ab.
Ich verwende CTRL- SHIFT-, DELETEdas die Datenschutzfunktion aktiviert und es Ihnen ermöglicht, Ihren Cache zu leeren, Cookies zurückzusetzen usw. auf einmal. Sie können es sogar so konfigurieren, dass es nur funktioniert, anstatt ein Dialogfeld aufzurufen, in dem Sie zur Bestätigung aufgefordert werden.
In höheren Versionen von Firefox wie Nightly gibt es eine Option namens "Cache deaktivieren". Sie finden sie, indem Sie auf das Zahnrad klicken. Diese Option funktioniert nur in der aktuellen Sitzung. Wenn Sie also den Inspektor schließen und neu starten, müssen Sie ihn erneut überprüfen, wenn der Fang deaktiviert werden soll.
Nach 2 Stunden Suche nach verschiedenen Alternativen hat dies für mich funktioniert.
Meine Anforderung bestand darin, das Caching von JS- und CSS-Dateien in meiner frühlingsgesicherten Webanwendung zu deaktivieren. Gleichzeitig werden diese Dateien "innerhalb" einer bestimmten Sitzung zwischengespeichert.
Das Übergeben einer eindeutigen ID bei jeder Anfrage ist einer der empfohlenen Ansätze.
Und das habe ich getan: - Statt
<script language="javascript" src="js/home.js"></script>
ich benutzte
<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>
Alle Nachteile des oben genannten Ansatzes sind willkommen. Sicherheitsprobleme ?
In Firefox 45 können die Optionen für den Festplatten-Cache festgelegt werden, indem der Wert von: browser.cache.disk.enable geändert wird
Der Wert kann auf der Seite "about: config" eingestellt werden.
Auf http://kb.mozillazine.org/About:config_entries#Browser habe ich die folgende Beschreibung für "browser.cache.disk.enable" gefunden:
True (Standard): Verwenden Sie den Festplatten-Cache bis zu der in browser.cache.disk.capacity angegebenen Kapazität. False: Deaktivieren Sie den Festplatten-Cache (der gleiche Effekt wie das Setzen von browser.cache.disk.capacity auf 0).
Dies kann zunächst einfach durchgeführt werden, z. B. durch PHP, um den Browser zu zwingen, Dateien basierend auf dem Cache-Datum (Ablaufzeit) zu erneuern. Wenn Sie es nur für experimentelle Zwecke benötigen, versuchen Sie, mit Strg + Umschalt + Entf den gesamten Cache im Firefox-Browser auf einmal zu löschen. Die dritte Lösung besteht darin, viele Add-Ons zu verwenden, die für Firefox beendet werden, um den Cache basierend auf Zeitleisten zu löschen.