Cache im Browser einfach erklärt

 

Ein Cache ist ein Vorrat an Kopien, der näher am Verbraucher liegt als das Original. Bevor ein Programm den langen Weg zum Original geht, sieht es in diesem Vorrat nach. Für Sie als Galeriebetreiber zählen drei solcher Vorräte. Am häufigsten begegnet Ihnen der Cache im Browser Ihrer Besucher, der Vorschaubilder und Stylesheet auf deren Gerät aufbewahrt. Auf Ihrem Webspace kommen der Zwischenspeicher für Datenbankabfragen und die verkleinerten Bildkopien hinzu, die das Galerie-Script einmal berechnet und dann aufbewahrt. Alle drei machen die Galerie schneller, und jeder kann erklären, warum eine Änderung auf Ihrem Bildschirm noch nicht zu sehen ist.

Cache im Browser als Bild: Werkbank mit griffbereitem Werkzeug, hinten eine geschlossene Kellertür, ein Blitz lädt die Seite

Das Prinzip: Treffer oder Fehlgriff

Stellen Sie sich eine Werkstatt vor. Das Werkzeug lagert im Keller, die wichtigsten Teile liegen aber griffbereit auf der Werkbank. Findet der Handwerker den Schraubendreher auf der Bank, ist das ein Treffer, und er arbeitet sofort weiter. Liegt er dort nicht, ist das ein Fehlgriff: Er geht in den Keller, holt ihn und legt ihn danach auf die Bank, damit der nächste Griff schneller geht. Genau so arbeitet jeder Cache. Er ist klein und schnell, das Original ist groß und langsam, und gewonnen ist nur etwas, wenn die meisten Zugriffe Treffer sind.

Deshalb gibt es Caches auf jeder Ebene eines Computers. Der Prozessor hält häufig gebrauchte Daten in einem eigenen kleinen Speicher, weil schon der Weg zum Arbeitsspeicher ein Vielfaches länger dauert. Das Betriebssystem behält zuletzt gelesene Dateien im Arbeitsspeicher. Webserver und PHP legen fertige Ergebnisse oder übersetzten Programmcode ab, große Websites verteilen Kopien ihrer Bilder über ein Content Delivery Network auf Server in der Nähe der Besucher, und der Browser speichert, was er schon einmal geladen hat. Jeder dieser Vorräte hat denselben Haken: Eine Kopie kann veraltet sein. Darum braucht jeder Cache eine Regel, wann er seiner Kopie nicht mehr traut, entweder eine Ablaufzeit oder ein Kennzeichen, das sich bei jeder Änderung ändert. Beide Regeln begegnen Ihnen in der Galerie wieder.

Der Cache im Browser beim Galeriebesuch

Rechnen wir eine Kategorie mit 40 Fotos durch. Jedes Vorschaubild ist eine kleine JPEG-Datei, sagen wir rund 15 KB. Beim ersten Aufruf holt der Browser also etwa 600 KB Bilder plus Stylesheet und Seite. Beim zweiten Aufruf derselben Kategorie, eine Stunde später, sieht er in seinem Vorrat nach: Die 40 Vorschaubilder haben sich nicht verändert, ihre Adresse ist dieselbe, also nimmt er sie von der Platte. Übertragen wird praktisch nur noch das HTML. Auf dem Handy im Mobilfunknetz merkt man den Unterschied deutlich.

Wie lange der Browser eine Datei behalten darf, sagt ihm der Webserver in den Kopfzeilen der Antwort, etwa mit Cache-Control: max-age=31536000 für „ein Jahr aufbewahren“. Fehlt so eine Angabe, schätzt der Browser selbst und fragt meist früher nach. Wie lange Ihre Dateien beim Besucher liegen bleiben, hängt also von der Einstellung Ihres Webspace ab, nicht vom Galerie-Script. Neue Besucher betrifft das nie: Ihr Browser hat noch nichts gespeichert und lädt die aktuelle Fassung.

Drei Zwischenspeicher bei einer eigenen Galerie

Wer bei einer selbst betriebenen Galerie von „dem Cache“ spricht, meint oft verschiedene Dinge. Einer der drei Vorräte liegt beim Besucher, zwei legt das Bildergalerie-Script auf Ihrem Webspace an. Es lohnt sich, sie auseinanderzuhalten, denn jeder erneuert sich auf eine andere Art.

VorratOrt und InhaltWann er sich erneuert
Cache im BrowserGerät des Besuchers: Vorschaubilder, Stylesheet, Logo, Originalenach Ablauf der Server-Angabe, bei neuer Adresse sofort, oder wenn der Besucher ihn leert
DatenbankabfragenOrdner cache/ auf dem Webspace: Ergebnisse wie die Kategorienlistenach der eingestellten Zeit (Standard 350 Sekunden) oder sofort nach jeder Änderung in der Verwaltung
BildkopienOrdner bilder/tn/: verkleinerte Kopien für Übersicht und große Ansichtwenn sich das Original oder die eingestellte Bildgröße ändert; Vorschaubilder zusätzlich nach der Zahl von Tagen unter „Vorschaubilder neu erstellen nach“ (0 heißt nie und wird empfohlen)

Den mittleren Vorrat steuern Sie selbst. In der Verwaltung unter „Einstellungen“ steht im Abschnitt „Leistung“ das Feld „Zwischenspeicher für Datenbankabfragen“. Erlaubt sind 1 bis 86400 Sekunden, also höchstens ein Tag, und 0 schaltet ihn ganz ab. Die Galerie legt dort die Ergebnisse ihrer Abfragen ab, etwa die Liste der Kategorien und die Bilderanzahl je Kategorie. Bei einer kleinen Galerie mit wenigen Besuchern merken Sie kaum einen Unterschied. Bei vielen gleichzeitigen Aufrufen entlastet der Wert die Datenbank spürbar. Ein hoher Wert schadet der Aktualität nicht: Nach dem Hochladen, Löschen, dem FTP-Import und nach Änderungen an Beschreibungen, Kategorien oder Einstellungen leert die Verwaltung den Ordner selbst. Neue Bilder sind deshalb sofort sichtbar.

Für die Bildkopien nutzt die Galerie das zweite Prinzip, das Kennzeichen. Vorschaubilder und Kopien für die große Ansicht tragen einen Zeitstempel in der Adresse, zum Beispiel ?v=1728720000. Erzeugt die Galerie eine Kopie neu, ändert sich diese Zahl, und für den Browser ist das eine neue Adresse, die er frisch lädt. Die Originale haben keinen Zeitstempel. Löschen Sie ein Foto und laden später ein anderes unter demselben Namen hoch, kann ein Stammbesucher noch eine Weile das alte Original sehen. Geben Sie dem neuen Foto deshalb einen neuen Dateinamen.

Wie die drei Vorräte bei einem Aufruf zusammenspielen, zeigt das Diagramm in drei Durchgängen: beim ersten Besuch mit lauter Fehlgriffen, beim Wiederkommen mit Treffern im Ordner cache/ und im Browser, und nach einem Upload in der Verwaltung, der eine neue Adresse erzeugt.

Animiertes Diagramm: Cache im Browser des Besuchers, Ordner cache/ mit 350 Sekunden und bilder/tn/ in drei Durchgängen, beim Upload wechselt die Vorschau von ?v=1728720000 auf ?v=1728806400
Erster Besuch, Wiederkommen, Upload: Der Cache im Browser spart die Bilder, der Ordner cache/ die Datenbankabfrage, und ein neues ?v= an der Kopie aus bilder/tn/ erzwingt das Neuladen.

Wenn die Galerie nach einer Änderung Altes zeigt

Die typischen Momente, in denen Betreiber an ihrer Galerie zweifeln, haben fast immer mit einem der drei Vorräte zu tun. Die Änderung ist gespeichert, sie kommt nur noch nicht beim Betrachter an:

  • Farbe in css/layout.css geändert: Gibt Ihr Webspace Stylesheets für einen Monat zum Speichern frei, hält Ihr Browser die alte Datei fest, bis Sie gezielt neu laden.
  • Foto gelöscht und unter gleichem Namen neu hochgeladen: Vorschau und große Ansicht stimmen sofort, das Original kann beim Stammbesucher noch das alte Motiv zeigen.
  • Kategorie in phpMyAdmin umbenannt: Hier wirkt nicht der Browser, sondern der Ordner cache/. Der alte Name bleibt, bis die eingestellte Zeit vorbei ist.

Gehen Sie bei der Suche vom nächstliegenden Vorrat zum entferntesten. So wissen Sie nach wenigen Minuten, ob überhaupt ein Fehler vorliegt:

  1. Seite mit Strg und F5 neu laden, auf dem Mac mit Befehlstaste, Umschalt und R (in Safari Befehlstaste, Wahltaste und R). Damit übergeht der Browser für diesen einen Aufruf seine gespeicherten Kopien und fragt jede Datei frisch an.
  2. Die Seite in einem privaten Fenster öffnen. Ist die Änderung dort zu sehen, lag es nur am Cache im Browser.
  3. Bietet Ihr Webhoster einen eigenen Server-Cache an, diesen im Kundenmenü leeren.
  4. Nur wenn Sie Daten direkt in der Datenbank geändert haben: den Ordner cache/ der Galerie leeren, wie weiter unten beschrieben.

Zeigt auch das private Fenster noch den alten Stand und haben Sie nicht an der Datenbank gearbeitet, liegt die Ursache woanders. Prüfen Sie dann, ob die geänderte Datei wirklich im richtigen Ordner auf dem Webspace gelandet ist. Ein FTP-Programm, das in ein falsches Verzeichnis hochlädt, ist häufiger der Grund als jeder Cache.

Den Cache im Browser leeren

Das Neuladen mit Strg und F5 wirkt nur für die eine Seite. Hilft es nicht, oder sieht ein Besucher dauerhaft einen alten Stand, leert er den Cache im Browser ganz. Lesezeichen, gespeicherte Passwörter und Anmeldungen bleiben dabei erhalten, solange nur der Eintrag für zwischengespeicherte Dateien angehakt ist:

  • Chrome und Edge: Strg, Umschalt und Entf öffnen das Fenster zum Löschen der Browserdaten. Als Zeitraum „Gesamte Zeit“ wählen und nur „Bilder und Dateien im Cache“ (in Edge „Zwischengespeicherte Bilder und Dateien“) anhaken.
  • Firefox: Dieselbe Tastenkombination öffnet das Löschfenster. Dort nur den Eintrag für temporäre, zwischengespeicherte Dateien und Seiten auswählen.
  • Safari am Mac: Unter „Einstellungen“ › „Erweitert“ die Funktionen für Webentwickler einblenden. Danach leert die Kombination Befehlstaste, Wahltaste und E den Cache.
  • Handy: In Chrome für Android über das Menü mit den drei Punkten „Browserdaten löschen“ wählen und nur „Bilder und Dateien im Cache“ anhaken. Auf dem iPhone löscht „Einstellungen“ › „Safari“ › „Verlauf und Websitedaten löschen“ den Cache, aber zugleich Verlauf und Anmeldungen. Schonender ist „Safari“ › „Erweitert“ › „Websitedaten“, wo Sie nur die Daten Ihrer Galerie entfernen.

Beim Testen eigener Änderungen ist ein privates Fenster oft der schnellere Weg, denn es startet mit leerem Vorrat und vergisst ihn beim Schließen wieder.

Den Ordner cache/ von Hand leeren

Nötig ist das nur, wenn Sie Kategorien oder Bilder an der Verwaltung vorbei geändert haben, meist direkt in phpMyAdmin. Dann zeigt die Galerie den alten Stand, bis die eingestellte Zeit abgelaufen ist. Wer nicht warten will, geht so vor:

  1. Mit dem FTP-Programm den Ordner cache/ der Galerie öffnen.
  2. Alle Dateien mit einem 32-stelligen Namen aus Ziffern und den Buchstaben a bis f markieren und löschen. Diese Dateien haben keine Endung.
  3. Die Datei .htaccess und eine eventuell vorhandene index.html stehen lassen, ebenso den Ordner selbst. Die .htaccess sperrt den Zugriff aus dem Web.
  4. Die Galerie neu aufrufen. Sie fragt die Datenbank jetzt frisch ab und legt neue Dateien an.

Dateien mit Endungen wie .cache oder .tmp legt das Script nicht an. Finden Sie solche Dateien im Ordner, stammen sie aus einer anderen Anwendung und haben mit der Galerie nichts zu tun. Ausprobieren können Sie das alles am eigenen Webspace: Das Bildergalerie-Script lässt sich kostenlos herunterladen, die Einstellung für den Zwischenspeicher finden Sie nach der Installation unter „Einstellungen“ im Abschnitt „Leistung“.

Häufige Fragen

Rund um den Cache verunsichert vor allem die Frage, ob man ihn gefahrlos leeren darf und wie man Änderungen trotz Zwischenspeicher sichtbar macht.

Gehen beim Leeren des Cache im Browser Bilder verloren?

Nein. Ihr Browser wirft nur seine eigenen Kopien weg. Die Fotos liegen weiter auf dem Webspace im Ordner bilder/, und beim nächsten Aufruf lädt der Browser sie einmal neu. Auch Anmeldungen bei anderen Seiten bleiben erhalten, solange Sie nur den Cache und nicht die Cookies löschen.

Muss ich den Ordner cache/ regelmäßig aufräumen?

Nein. Die Verwaltung leert ihn bei jeder Änderung, und abgelaufene Einträge ersetzt die Galerie beim nächsten Aufruf. Der Ordner wächst deshalb nicht unbegrenzt. Von Hand leeren müssen Sie ihn nur nach Änderungen direkt in der Datenbank.

Warum sehe ich meine geänderte layout.css nicht?

Ihr Browser verwendet noch die gespeicherte Fassung. Laden Sie mit Strg und F5 neu. Damit auch Stammbesucher die neue Datei bekommen, hängen Sie im Template an den Verweis eine Versionsnummer an, etwa css/layout.css?v=2, und erhöhen sie bei jeder Änderung. Das ist dasselbe Kennzeichen-Prinzip, das die Galerie bei den Vorschaubildern nutzt.

Welchen Wert sollte ich für den Zwischenspeicher der Galerie einstellen?

Der Standard von 350 Sekunden passt für fast jede Galerie. Bei sehr vielen Besuchern können Sie auf 3600 Sekunden gehen, denn neue Bilder erscheinen trotzdem sofort. Die 0 lohnt sich nur zum Testen, weil die Galerie dann bei jedem Aufruf die Datenbank fragt.

Verwandte Themen

Wie Zwischenspeicher und vorbereitete Bilder zusammen für eine schnelle Galerie sorgen, vertiefen diese Beiträge: