Aktualisieren Sie nur JavaScript-Dateien in Firefox und Chrome


64

Ich möchte nur JavaScript-Dateien aus meinen Webbrowsern (Firefox und Chrome) löschen. Ich teste gerade JavaScript und es ist ärgerlich, dass mein JS nicht aktualisiert wird, wenn ich meine JS-Dateien ändere. Das Einzige, was ich jetzt tun kann, ist, meine Cookies zu löschen. Dadurch wird jedoch mein gesamter Browserverlauf gelöscht.

Wie kann ich die in meinen Browser geladenen JavaScript-Dateien löschen / aktualisieren, ohne andere Dateien zu löschen?

Antworten:


42

Ich mache das selbst für die Entwicklung. Ich benutze Ctrl+ F5. Es ist wie ein Force Refresh. Dadurch wird die Seite aktualisiert, einschließlich des erneuten Herunterladens von JavaScript- oder CSS-Dateien, auf die verwiesen wird, auch wenn diese zwischengespeichert wurden.

Es werden KEINE anderen Daten wie Ihr Browserverlauf gelöscht.

Beachten Sie jedoch, dass ich, obwohl ich weiß, dass dies in Firefox und wahrscheinlich im Internet Explorer funktioniert , nicht sicher bin, ob Ctrl+ F5in Chrome auf die gleiche Weise funktioniert.

Auch sagt iegik :

Bei einigen Browsern können Sie `verwenden Ctrl+ Shift+ Rzu tun , um die gleiche Aufgabe.


Toll! Ich ändere die akzeptierte Antwort auf Ihre, weil Ihre Lösung eine einfachere ist
Graviton

Ich weiß das zu schätzen ... Aber bitte beachten Sie, dass ich, obwohl ich weiß, dass dies in Firefox und wahrscheinlich auch in IE funktioniert, nicht sicher bin, ob STRG-F5 in Chrome auf die gleiche Weise funktioniert.
7wp

2
Dasselbe gilt für die Beta-Version von Chrome 21 unter Win7. Wenn Sie die Seite mit Strg-F5 aktualisieren, wird die JS-Datei nicht erneut angefordert (ich verwende Charles zur doppelten Überprüfung).
Artem Russakovskii

1
Tatsächlich behandelt Chrome die Tastenkombination Strg + F5 als normale Aktualisierung. Die nachfolgende Tastenkombination Strg + F5 (mehr als eine) in kurzer Zeit
erzwingt das

1
Für Chrome F12 und klicken Sie mit der rechten Maustaste auf die Schaltfläche "Aktualisieren". superuser.com/questions/220179/…
Cees Timmerman

50

Mit Chrome:

Öffnen Sie ab Chrome 15 die Entwicklertools, klicken Sie auf das Zahnrad unten links auf dem Bildschirm und aktivieren Sie das Kontrollkästchen Cache deaktivieren .

Deaktivieren Sie den Cache in Chrome 15 und höher

Auf diese Weise können Sie sicher sein, dass Ressourcen immer vom Server neu geladen werden, und Sie müssen den Cache nicht manuell leeren, wodurch möglicherweise auch zwischengespeicherte Daten für nicht verwandte Sites entfernt werden.


Danke für den Tipp - ich habe es gerade überprüft und diese Option ist auch in Chrome 14 verfügbar.
Keybits

Genius! Das ist eine großartige Entdeckung.
Randomblue

Genial, ich habe danach gesucht.
Artem Russakovskii

... und vergessen Sie nicht, die Option zu deaktivieren, wenn Sie damit fertig sind.
Halil Özgür

Bei einer zweiten Einstellung scheinen diese Optionen nur aktiv zu sein, wenn die Devtools sichtbar sind: twitter.com/ChromiumDev/status/227356682890670080 (von stackoverflow.com/a/7000899/372654 )
Halil Özgür

8

Ich bin mit @ 7wp nicht einverstanden. Da einige Ihrer Endbenutzer nicht mit der Funktion Ctrl+ vertraut F5sind und andere die Unterschiede zwischen den Browsern und sogar die Existenz anderer Browser (z. B. ältere Benutzer) nicht kennen , sollten Sie den Browser zum Herunterladen einer neuen Kopie von zwingen die JS / CSS-Dateien.

Die beste Lösung ist, den Zeitstempel am Ende der .js / .css-Dateinamen oder die svn-Version einzufügen, was ebenfalls eine gute Idee ist.

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

5

Möglicherweise möchten Sie versuchen, nur Ihren Cache zu löschen und nicht das gesamte Browsing, den Verlauf, Cookies, Kennwörter, gespeicherte Formulardaten und so weiter (die Standardeinstellung).

Gehen Sie in Firefox 3.5 zu

Extras »Verlauf löschen ...

Stellen Sie dann sicher, dass nur "Cache" ausgewählt ist, bevor Sie "Jetzt löschen" auswählen.

In Chrome (weiß nicht, welche bestimmte Version Sie verwenden, da ich die Entwickler-Builds verwende), gehen Sie zu

Schlüsselsymbol (Extras) »Optionen» Persönliches »Browserdaten löschen ...

Stellen Sie erneut sicher, dass nur "Cache leeren" aktiviert ist.

Alternativ können Sie versuchen, eine neue private Sitzung in Firefox oder ein Inkognito-Fenster in Chrome zu öffnen. Sie sollten auch keine Dateien (einschließlich Ihrer .JS-Dateien) zwischenspeichern, die Sie beim Browsen automatisch herunterladen und verarbeiten.


Inkognito ist wahrscheinlich der richtige Weg für Chrome.
Mdoar

1

Ich habe einen kleinen Trick auf einer Website angewendet, an der ich arbeite ... aus den gleichen Gründen wie Sie. Ich nehme kleine Änderungen vor und habe JavaScript-Code geladen. Ich möchte sicherstellen, dass ich immer mit dem aktuellen (nicht zwischengespeicherten) Skript arbeite.

Versuchen Sie, den JavaScript-Code, den Sie laden, in eine PHP-Datei zu <?php ?>schreiben ... stellen Sie ihn einfach an den Anfang und setzen Sie die Endung von .php auf.

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);

Da sich der Name ändert, denkt Internet Explorer, dass es sich um eine neue Datei handelt;)


1
Muss den Namen nicht in '.php' ändern. Wenn Sie 'filename.js? T =' + t eingeben, ist das Ergebnis dasselbe. Du kannst es auch mit '.css' machen. Alle unsere Produktionssysteme verwenden diesen Trick, um zu bestätigen, dass die Kunden die richtigen Inhaltsdateien verwenden.
Leonel Martins

1
Als Hinweis verwenden wir in der Regel die SVN-Versionsnummer anstelle von Datum / Uhrzeit. Auf diese Weise erhalten wir Caching-Vorteile und werden nur dann aktualisiert, wenn wir tatsächlich einen Commit durchführen.
Groo

Vielen Dank! Dieser Trick ist mir völlig durch den Kopf gegangen. Ich kämpfe seit Tagen gegen dieses Problem und das wird es für mich tun. Ich
füge

1

In Chrome können Sie drücken Sie einfach Ctrlden Refresh - Button und klicken Sie auf . Ich habe das durch Zufall entdeckt.


Hierdurch wird die gesamte Seite hart aktualisiert. Ich glaube nicht, dass hierdurch nur Javascript aktualisiert wird.
Ivo Flipse

1

Ich öffne die JavaScript-Datei in einem separaten Tab, Shift+ aktualisiere, vergewissere mich, dass die letzten Änderungen Shiftangezeigt werden , und + aktualisiere dann die aktuelle Seite (in meinem Fall Frame in einem Frameset, was die Sache anscheinend verschlimmert). Das funktioniert fast immer.


0

Ich habe es selbst nicht benutzt, aber das Firefox-Add-on "Cache leeren" könnte von Nutzen sein. Ich habe die Dokumentation gelesen und bin mir nicht sicher, ob dadurch auch Ihr Browserverlauf gelöscht wird.


0

Gehen Sie zu den Inhaltseinstellungen in Chrome, deaktivieren Sie JavaScript und speichern Sie.

Aktivieren Sie dann JavaScript erneut.


0

Wenn Sie mit JavaScript arbeiten und Bedenken haben, die Seite neu zu laden, um Änderungen an JavaScript widerzuspiegeln. Versuchen Sie, den Chrome-Debugger zu verwenden, mit dem Sie zur Laufzeit Änderungen an den geladenen JavaScript-Dateien vornehmen und ohne erneutes Laden neue Funktionen oder Änderungen testen können, die Sie testen möchten.


Willkommen bei Super User! Bitte lesen Sie die Frage noch einmal sorgfältig durch. Ihre Antwort beantwortet nicht die ursprüngliche Frage.
DavidPostill


0

Fügen Sie am Ende Ihrer JavaScript-Datei eine dynamische Datumsfunktion hinzu. Der Browser wird gezwungen, die aktualisierte JavaScript-Datei zu laden. Das heißt, wenn Sie die .js-Datei einfügen, können Sie .... xyz.js hinzufügen?

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

Dies kann natürlich entfernt werden, sobald das Debuggen abgeschlossen und einsatzbereit ist.


Dies ist kein Javascript.
Natalie Adams
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.