it-swarm.com.de

JavaScript-Datei wird nicht aktualisiert, egal was ich mache

Ich habe eine externe JavaScript-Datei und ob in Firefox oder Chrome, ob alle Browsing-Daten gelöscht werden, es wird NICHT aktualisiert, egal was passiert. Ich glaube, etwas ist passiert, als ich eine Sicherungskopie meiner Datei erstellt habe, die ich einfach am Ende des Namens mit "_thedate" versehen habe. Speichern Sie dann unter dem ursprünglichen Namen.

Jetzt kann ich die alte JS anscheinend nicht loswerden, es sei denn, ich ändere den Namen der Datei, was ich wirklich nicht tun möchte, oder füge das Skript der PHP - Seite hinzu, die es überfüllt.

Kennt jemand die Lösung dafür?

43
Tarik

Sind Sie sicher, dass Sie auf dieselbe Datei verweisen und diese dann bearbeiten?

In einigen Browsern können Sie mit STRG F5 eine Aktualisierung erzwingen.

Firebug hat auch eine Netzregisterkarte mit "Browser-Cache deaktivieren"

Update 2017:

Wenn Sie den Google Chrome-Debugger verwenden, ist es derselbe. Sie können zum Abschnitt "Netzwerk" gehen und sicherstellen, dass "Cache deaktivieren (bei geöffneten DevTools)" in den Einstellungen des Debugger-Bereichs aktiviert ist.

Wenn Sie die JavaScript-Datei verknüpfen, verwenden Sie auch

<script src="my-js-file.js?v=1"></script>

oder v=2 und so weiter, wenn Sie die Datei auf jeden Fall aktualisieren möchten. Oder Sie können zur Konsole gehen und eine Date.now() ausführen und einen Zeitstempel wie 1491313943549 erhalten und verwenden

<script src="my-js-file.js?t=1491313943549"></script>

Einige Bauwerkzeuge erledigen dies automatisch für Sie oder können so konfiguriert werden, dass sie so aussehen:

<script src="main.742a4952.js"></script>

was im Wesentlichen den Cache brechen wird.

Hinweis Wenn Sie den v=2 oder t=1491313943549 oder main.742a4952.js verwenden, haben Sie auch den Vorteil, dass Ihre Benutzer definitiv auch die neuere Version erhalten.

67

Wie wäre es, dem Tag ein "? 2" hinzuzufügen?

<script src="a.js?2"></script>

Der Server sollte dieselbe Datei mit oder ohne '? 2' zurückgeben, der Browser sollte jedoch eine andere Datei sehen und erneut herunterladen. Sie können diese Abfragezeichenfolge einfach ändern, wenn die Datei geändert wird.

angepasst von: http://blog.httpwatch.com/2007/12/10/two-simple-rules-for-http-caching/

15
nsdel

Ich hatte dieses Problem schon einmal, es ist sehr frustrierend, aber ich habe eine Arbeit gefunden. Geben Sie die vollständige Adresse der js-Datei (d. H. Yourhost.com/javascript.js) ein und laden Sie sie. Sie werden wahrscheinlich die alte Version laden sehen. Drücken Sie dann f5, um diese Seite zu aktualisieren. Die neue Version sollte jetzt geladen werden. Die js-Datei wird jetzt in Ihrem Cache aktualisiert und der Code sollte wie erwartet ausgeführt werden.

12
Anthony

Die Lösung, die ich verwende, ist . Firefox verwenden
1. mit Webentwickler -> Webkonsole
2. Öffnen Sie die Java-Skriptdatei in einer neuen Registerkarte.
3. Aktualisieren Sie die neue Registerkarte. Der neue Code sollte angezeigt werden.
4. Aktualisieren Sie die Originalseite 
5. Sie sollten Ihre Änderungen sehen.

9
Richard Culmone

Benennen Sie Ihre JS-Datei vorübergehend in etwas anderes um. Dies ist das einzige, was für mich funktioniert hat.

Um Browsercaches am besten zu nutzen, fügen Sie dem Pfad der js-Datei eine Zufallszahl hinzu.

Beispiel im Pseudocode:

// generate a random number
int i = Random.Next();
echo "<script src='a.js?'" + i + "></script>";

Dadurch wird sichergestellt, dass Ihr Browser die Datei immer neu lädt, da er der Meinung ist, dass es sich um eine andere Datei handelt, und zwar aufgrund der Zufallszahl in der URL.

Der Server gibt immer die Datei zurück und ignoriert, was hinter dem '?'.

1
xyzzy.rad

Ich hatte dieses Problem und löste es in Chrome, indem ich einfach den Cache deaktivierte: - Klicken Sie auf F12; - Gehen Sie auf die Registerkarte Netzwerk.

Sind Sie zu 100% sicher, dass Ihr Browser das Skript überhaupt lädt? Gehen Sie zu Ihrer Seite in Firefox und überprüfen Sie mit der Konsole in Firebug, ob das Skript geladen wurde oder nicht.

0
Glenn Nelson

Ich habe das gleiche Problem für eine Weile und finde es herauszufinden ... Und mein Fall war, weil ich 2 Javascript mit dem gleichen Funktionsnamen habe. 

0
Mark Khor

1. Löschen Sie den Browser-Cache in den Browser-Entwicklertools. 2. Wählen Sie auf der Registerkarte Netzwerk die Option Cache deaktivieren. 3. Starten Sie den Browser neu

0
Smitha

Ein wenig zu spät zur Party, aber wenn Sie dies in Ihre HTML-Datei schreiben, wird Ihre Website den Cache nicht aktualisieren. Das Laden der Website dauert etwas länger, aber für Debugging-Zwecke mag ich es. Aus dieser Antwort entnommen: Wie leert man den Browser-Cache programmgesteuert?

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
0
user5399481