Einfache Client-seitige Technik
Im Allgemeinen ist Caching gut... Es gibt also mehrere Techniken, je nachdem, ob Sie das Problem für sich selbst bei der Entwicklung einer Website beheben oder ob Sie versuchen, den Cache in einer Produktionsumgebung zu kontrollieren.
Die allgemeinen Besucher Ihrer Website werden nicht die gleichen Erfahrungen machen wie Sie, wenn Sie die Website entwickeln. Da der durchschnittliche Besucher Ihre Website seltener besucht (vielleicht nur ein paar Mal im Monat, es sei denn, Sie sind ein Google- oder Hi5-Netzwerk), ist es unwahrscheinlicher, dass er Ihre Dateien im Cache hat, und das könnte schon ausreichen.
Wenn Sie eine neue Version im Browser erzwingen wollen, können Sie immer einen Query-String zur Anfrage hinzufügen und die Versionsnummer erhöhen, wenn Sie größere Änderungen vornehmen:
<script src="/myJavascript.js?version=4"></script>
Dadurch wird sichergestellt, dass jeder die neue Datei erhält. Es funktioniert, weil der Browser anhand der URL der Datei feststellt, ob er eine Kopie im Cache hat. Wenn Ihr Server nicht so eingestellt ist, dass er etwas mit der Abfragezeichenfolge macht, wird sie ignoriert, aber der Name sieht für den Browser wie eine neue Datei aus.
Wenn Sie hingegen eine Website entwickeln, möchten Sie nicht jedes Mal die Versionsnummer ändern, wenn Sie eine Änderung an Ihrer Entwicklungsversion speichern. Das wäre mühsam.
Ein guter Trick bei der Entwicklung Ihrer Website wäre also, automatisch einen Query-String-Parameter zu generieren:
<!-- Development version: -->
<script>document.write('<script src="/myJavascript.js?dev=' + Math.floor(Math.random() * 100) + '"\><\/script>');</script>
Das Hinzufügen eines Query-Strings zur Anfrage ist ein guter Weg, um eine Ressource zu versionieren, aber für eine einfache Website kann dies unnötig sein. Und denken Sie daran: Caching ist eine gute Sache.
Es ist auch erwähnenswert, dass der Browser nicht unbedingt geizig ist, wenn es darum geht, Dateien im Cache zu speichern. Browser verfügen über entsprechende Richtlinien, und sie halten sich in der Regel an die in der HTTP-Spezifikation festgelegten Regeln. Wenn ein Browser eine Anfrage an einen Server stellt, ist ein Teil der Antwort eine Abgelaufen Header... ein Datum, das dem Browser mitteilt, wie lange es im Cache gehalten werden soll. Wenn der Browser das nächste Mal eine Anfrage für dieselbe Datei erhält, sieht er, dass er eine Kopie im Cache hat, und schaut in der Abgelaufen Datum, um zu entscheiden, ob es verwendet werden soll.
Ob Sie es glauben oder nicht, es ist tatsächlich Ihr Server, der den Browser-Cache so beständig macht. Sie könnten Ihre Servereinstellungen anpassen und die Abgelaufen Kopfzeilen, aber die kleine Technik, die ich oben geschrieben habe, ist wahrscheinlich ein viel einfacherer Weg für Sie, dies zu tun. Da die Zwischenspeicherung gut ist, möchten Sie dieses Datum in der Regel weit in die Zukunft setzen (ein "Far-future Expires Header") und die oben beschriebene Technik verwenden, um eine Änderung zu erzwingen.
Wenn Sie an weiteren Informationen über HTTP oder darüber, wie diese Anfragen gestellt werden, interessiert sind, empfehlen wir Ihnen das Buch "High Performance Web Sites" von Steve Souders. Es ist eine sehr gute Einführung in das Thema.