2009-04-05 2 views
3

Ich bin ein Neuling JavaScript und ich folgendes Problem erlebe:JavaScript und mögliche Browser-Cache Problem

Ich würde JS-Code in einer separaten Datei schreiben, umfassen die Datei im HTML-Code. JS-Code läuft großartig. Keine Probleme. Ich würde fortfahren und einige Änderungen am JS-Code vornehmen, klicken Sie auf "Aktualisieren" im Browserfenster und manchmal gibt es ein Problem. Die Änderungen, die ich am JS-Code vorgenommen habe, haben die Dinge durcheinander gebracht. Der Code funktioniert nicht so, wie er angenommen wurde. Also fange ich an, nach dem Problem zu suchen, aber der Code ist völlig in Ordnung. Also lösche ich den Cache des Browsers - immer noch nichts. Ich rückgängig die Änderungen an JS-Code, alles funktioniert. Ich lege den neuen Code wieder ein - nach ein paar "Refresh" -Klicks - plötzlich funktioniert es. Ich habe dieses Problem mit Safari 4, Firefox 2.0. Ich habe keinen anderen Browser ausprobiert.

Meine Frage ist - muss ich Browser-Caching mit einigen JS-Technik oder einfach aus dem Browser deaktivieren oder gibt es ein anderes Problem? Danke für deine Zeit und Hilfe!

Antwort

3

Wenn Sie eine Webseite neu laden/aktualisieren, werden die meisten Skripts aus dem Cache neu geladen. Sie können den Browser zwingen, die externen Skriptdateien erneut zu laden, indem Sie die Umschalttaste gedrückt halten, während Sie auf die Schaltfläche zum Aktualisieren klicken.

Wenn das nicht funktioniert, möchten Sie vielleicht überprüfen, ob sich ein Proxy-Server zwischen Ihnen und der Webseite befindet. Wenn es sich um eine lokale Webseite handelt, sollte der Shift-Button die Lösung sein.

4

Wenn Sie Ihre JS-Datei mit einem zufälligen Schlüssel verweisen, die Cache-Niederlage würde:

zB:

var randomnumber=Math.floor(Math.random()*10000) 
var scriptfile='http://www.whatever.com/myjs.js?rnd='+randnumber; 

Gut für das Debuggen, wenn sonst nichts.

+0

Vielen Dank, ich werde das versuchen. Es nervt mich ziemlich oft, seit ich anfange, den Code zu überprüfen, und daran ist nichts falsch. – dalizard

+0

Anstelle einer Zufallszahl können Sie eine Versionsnummer verwenden (müssen). Auf diese Weise wird der Browser nur JS mit der gleichen Version cachen. Wenn Sie etwas in Ihrem Code (js) ändern, ändern Sie die Version und alle Clients finden automatisch das neue JS. Der gleiche Trick kann mit CSS gemacht werden – ejoncas

1

Ich finde, wenn ich einige JS debuggen ich habe nur die URL zum Javascript in einem anderen Tab öffnen. Wenn ich hochlade, wechsle ich zuerst zu der Registerkarte, klicke auf Aktualisieren und teste den Code. Dies oder das Caching im FireFox WebDeveloper Plugin.

2

Persönlich erzwinge ich die Aktualisierung mit STRG + F5.

Verwandte Themen