Meine Änderungen sind nicht sichtbar.

Ein häufiges Problem ist, dass sich Änderungen nicht bemerkbar machen. Dies liegt meist an einem der folgenden Gründe:

Die Veröffentlichung spielt nur für Inhalte eine Rolle, die veröffentlicht werden müssen, zB. generierte Seiten. Stellen Sie in dem Fall sicher, dass die Seiten generiert wurden. Falls die Seiten von einem anderen Webserver ausgeliefert werden (Cross-CMS), so müssen die generierten Seiten auch mit diesem Server synchronisiert werden.

Zwischenspeicherung von Webinhalten

Ob mit oder ohne Veröffentlichung kann die Aktualität von Webinhalten grundsätzlich noch durch Zwischenspeicherung der Inhalte, auch Caching genannt, beeinträchtigt werden. Der Cache (Zwischenspeicher) wird dabei genutzt, um bereits vom Server empfangene Daten (Webseiten, Bilder etc.) nicht erneut zu übertragen. Dadurch beschleunigt sich die Seitendarstellung und es müssen weniger Daten über die Leitung transportiert werden (Einsparung von Bandbreite). Ansich ist Caching also vorteilhaft. Es gibt jedoch Situationen, in denen der Inhalt des Caches von dem abweicht, was der Webserver liefern würde. Hier geht es nun darum, solche Situationen zu erkennen und mit ihnen umzugehen.

Wo wird zwischengespeichert?

Die Inhalte können vom Browser aber auch von vermittelnden Servern zwischen dem Browser und dem Webserver (sogenannten Proxyservern) zwischengespeichert (oder auch "gecached") werden. Das Caching des Browsers können Sie in der Regel recht einfach unterbinden, dass eines Proxiservers manchmal nur mühsam (oder auch gar nicht). Ob ein Proxiserver zwischen Ihrem Browser und dem Webserver liegt oder nicht hängt von Ihrem Provider und/oder Ihrer technischen Infrastruktur ab.

Nach welchen Regeln wird zwischengespeichert?

Inhalte, die vom Webserver als dynamisch gekennzeichnet worden sind, werden meist nicht oder nur kurzzeitig gecached. Dazu gehören meist PHP-Seiten. Alle anderen Dateien können eine Zeit lang gecached werden.

Für Interessierte: Webinhalte, die als Antwort auf ein (mit POST) versendetes Formular zurück gesendet werden, dürfen nicht zwischengespeichert werden, aber Inhalte, die alleine durch eine Webadresse (also per GET) angefragt wurden, können zwischengespeichert werden (auch wenn der Server dies versucht zu unterbinden).

Wie kann man den Cache umgehen?

Die erste Wahl ist das Aktualisieren der Webinhalte im Browser mit Ansicht / Neu laden (Firefox), Ansicht / Aktualisieren (Internet Explorer) oder F5 bzw. Strg + R. Wenn keinen Erfolg bringt, kommt man manchmal mit Strg + F5 weiter.

Durch das Aktualisieren wird der HTML-Text der Webseite und meist auch eingeblendete Bilder neu angefordert. Manche Dateien (oft CSS-Dateien, und JavaScript-Dateien, meistens Rollover-Bilder) werden damit aber nicht zuverlässig erfasst. Dort hilft die nächste Methode.

Den Browsercache leeren

Eine andere Möglichkeit ist, den Browsercache zu leeren. Dies geschieht im Firefox über Extras / Einstellungen ... im Tabulator "Datenschutz", Abschnitt "Private Daten" Jetzt löschen (siehe dortige Einstellungen, wir haben es nur auf den Cache abgesehen). Im Internet Explorer 7 kann der Cache über Exras / Internetoptionen im Tabulator "Allgemein" unter dem Punkt "Browserverlauf" gelöscht werden. Ist der Cache leer, so muss der Browser sich die Daten neu beschaffen. Aber Vorsicht: Manchmal sind die aktuell angezeigten Inhalte vom Löschen ausgenommen. Um auch diese Inhalte sicher zu löschen, kann es bei manchen Browsern nötig sein, die Seite zu verlassen, bevor der Cache geleert wird.

Hartnäckige Fälle

Manchmal hilft das alles nichts, zB. wenn ein schlecht eingestellter Proxiserver partout auch nach erneuter Anfrage seine veraltete Kopie ausliefert, anstelle vom Webserver die aktuellen Daten zu holen. In dem Fall kann man sich über den Zustand der Daten auf dem Server zumindest informieren, indem man die Anfrage nach einem bestehden oder angehängten "?" verändert. Wenn Beispielsweise vermutet wird, dass ein Proxi die Datei "http://www.example.com/Bild.jpg" cached, so kann man in den allermeisten Fällen mit "http://www.example.com/Bild.jpg?irgendwas" erreichen, dass der Proxiserver die Datei wirklich neu anfordert. Um nach einer Dateiänderung wiederum den neusten Stand zu erzwingen, ändert man einfach das angehängte leicht ab, zB. "http://www.example.com/Bild.jpg?irgendwas2". Dies ist eine neue Anfrage und muss von dem Proxiserver durch ein aktuelles Serverergebnis beantwortet werden.