Seite 1 von 1

Tipp: Cache mit PHP "aushebeln"

Verfasst: Mi 24. Nov 2010, 14:14
von joergeli
Wahrscheinlich ist es den meisten hier schon bekannt, aber evtl. doch hilfreich für den einen, oder anderen:
Ein kleiner Tipp wie man Cache-Probleme - d.h. Inhalte im Browser werden nicht aktualisiert - mittels PHP umgehen kann.

Auf meinen Seiten kam es zeitweise vor, dass sich Grafiken trotz manuellem Reload der Seite nicht aktualisierten.
Versuche meinerseits, das Problem mit den Meta-Tags, wie z.B.:
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache">

zu umgehen, halfen nicht.

Ein Lösung, die funktioniert, besteht darin, das entspr. Element (Grafik) mit einem PHP-Zeitstempel zu versehen, z.B. so:
<img src="xyz.jpg?<?php echo mktime();?>" border="0">

Der Browser wertet dann nicht nur den reinen Dateinamen aus, sondern zusätzlich auch den angehängten Zeitstempel.
Wenn man die Seite neu lädt, ändert sich der Zeitstempel und für den Browser stellt es sich so dar, als ob sich der Bildname geändert hat,
also lädt er die vermeintlich andere Grafik und holt sie nicht mehr aus dem Cache.

Ein kleiner Nachteil hierbei ist, dass die WEB-Seite als PHP-Seite ( z.B. test.php) umbenannt werden muss, damit sie durch den PHP-Interpreter
des WEB-Servers geschleust wird und dieser damit etwas mehr belastet wird, was sich u.U. in geringen Performance-Verlusten benerkbar machen kann.

Gruß
Jörg