4 Stimmen

Wie lange existiert der Browser-Cache (.js-Dateien)

ASP.NET 4.0

Wenn ich meine .js-Datei in einer Seite aktualisiert habe, scheint es jedoch, dass der Browser des Kunden die neue .js-Datei nicht herunterlädt (aufgrund des Browser-Caches?). Welche Faktoren könnten dazu führen, dass die alte .js-Datei auf dem PC des Kunden verbleibt? Gibt es eine Möglichkeit, den Kunden zu zwingen, die neue .js-Datei herunterzuladen?

EDIT: Ich habe noch eine Frage: Wie lange speichert der Browser den .js-Cache? Wird dies über die Einstellungen des Client-Browsers gesteuert?

8voto

Flavio CF Oliveira Punkte 5205

Nun, Ihre Produktionsdatei ist nicht suposed, um häufig zu ändern, versuchen Sie, eine Version auf Ihren Dateinamen, wie Jquery, eine neue Version erzeugt eine Datei mit neuen Namen wie das:

/myfile.1.0.0.js

zu:

/myfile.1.0.1.js

7voto

Geoff Appleford Punkte 18140

Eine einfache Möglichkeit, den Browser dazu zu bringen, eine Datei erneut herunterzuladen, besteht darin, der URL einen Querystring hinzuzufügen

/myfile.js?v=1

1voto

Thanasis Ioannidis Punkte 2569

Im Allgemeinen zwischenspeichern Browser eine Antwort des Servers auf der Grundlage der genauen angeforderten URL (mit Abfrageparametern). Wenn der Browser die gleiche URL erneut anfordert, wird die gecachte Kopie verwendet. (natürlich gibt es Caching-Strategien, aber gehen wir von einem einfachen Szenario aus)

Um also den Browser zu zwingen, eine neue Kopie Ihrer Datei abzurufen, müssen Sie nur die URL der Anfrage für diese Datei ändern. Entweder ändern Sie den Namen der Datei, oder Sie behalten den Namen bei und ändern nur einen Abfrageparameter.

Wenn Sie die Seite entwickeln und ändern können, können Sie den Javascript-Link automatisch auf der Seite erstellen lassen

<script type="text/javascript" src="/myfile.js?modified=XXXXX">
</script>

Wo XXXX wird programmatisch auf die Ticks der DateModified-Information von myfile.js in jeder gerenderten Seite. Wenn diese Dateien also geändert werden, wird der Link des Ausgabeskripts automatisch auf den neuen Wert geändert und der Browser ist gezwungen, es erneut herunterzuladen.

Wenn ich zum Beispiel eine funcs.js Datei, würde die gerenderte Ausgabe etwa so aussehen

<script type="text/javascript" src="/funcs.js?modified=43253452352342">
</script>

Wenn die Datei später geändert wird, ändert sich das Rendering in etwas wie

<script type="text/javascript" src="/funcs.js?modified=43253456789678">
</script>

das geänderte geändert Abfrageparameter zwingt den Browser zum erneuten Herunterladen der Datei

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X