• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Element von Cache ausschließen

VanDerLars

Neues Mitglied
Hallo,

Frage:
Kann ich für einzelne Segmente den Cache ausschließen oder auf sehr kurze Refresh-Intervalle einstellen?

Hintergrund:
in einem Wordpress-Blog habe ich eine PHP-Funktion eingebaut, die bei jedem Neuladen in den Footer ein anderes Hintergrundbild lädt.

Leider wird aber das zuerst geladene Bild in den Cache geschrieben, so dass es bei jedem Neuladen unverändert bleibt. Erst mit einem Hard-Reload (Strg + F5) wird die Funktion wieder aufgerufen und das Bild ausgetauscht.

Ich überschreibe mit der Funktion gleich in das CSS rein:
div.custom_footer{
height:400pt;
width:100%;
background-position: bottom left;
background-repeat: no-repeat;
background-image: url(/doit_plugins/images/rotate.php);
}


Ich behandle rotate.php wie ein Image, und die Funktion liefert das zufällige Bild,
 
Also, wenn man sich mal die Mühe machen würde und in der Doku nachsieht und dann auch die "User Contributed Notes" beachtet, findet man viele interessante Dinge, w.z.B.

I came across a problem where Internet Explorer refused to cache some dynamically created images. To get round this, send out a Last-Modified header.

Eg:

<?php

header('Last-Modified: '.gmdate('D, d M Y H:i:s', $timestamp).' GMT');
header('Content-Type: image/jpeg');
imagejpeg($photo);
?>
 
Hallo,

Frage:
Kann ich für einzelne Segmente den Cache ausschließen oder auf sehr kurze Refresh-Intervalle einstellen?

Hintergrund:
in einem Wordpress-Blog habe ich eine PHP-Funktion eingebaut, die bei jedem Neuladen in den Footer ein anderes Hintergrundbild lädt.

Leider wird aber das zuerst geladene Bild in den Cache geschrieben, so dass es bei jedem Neuladen unverändert bleibt. Erst mit einem Hard-Reload (Strg + F5) wird die Funktion wieder aufgerufen und das Bild ausgetauscht.

Ich überschreibe mit der Funktion gleich in das CSS rein:
div.custom_footer{
height:400pt;
width:100%;
background-position: bottom left;
background-repeat: no-repeat;
background-image: url(/doit_plugins/images/rotate.php);
}


Ich behandle rotate.php wie ein Image, und die Funktion liefert das zufällige Bild,

Du kannst hinter dein Bild eine zufällige Nummer anhängen, brauchst dazu allerdings PHP. zB:

PHP:
style="background-image:  url(/doit_plugins/images/rotate.php?<?php echo uniqid() ?>);"
 
Also, wenn man sich mal die Mühe machen würde und in der Doku nachsieht und dann auch die "User Contributed Notes" beachtet, findet man viele interessante Dinge, w.z.B.

Ich habe bereits den Header der PHP angepasst:
Code:
 header("Expires: Mon, 10 Jan 1970 01:01:01 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");

Das bewirkt leider nichts
________

Du kannst hinter dein Bild eine zufällige Nummer anhängen, brauchst dazu allerdings PHP. zB:
PHP:
style="background-image:  url(/doit_plugins/images/rotate.php?<?php echo uniqid() ?>);"

Die Variante ist eine gute Idee, leider funktioniert sie nicht *siehe Anhang

Vielen Dank f[r eure Hilfe!
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    69,5 KB · Aufrufe: 9
Ich habe bereits den Header der PHP angepasst:
Code:
 header("Expires: Mon, 10 Jan 1970 01:01:01 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");

Das bewirkt leider nichts
________



Die Variante ist eine gute Idee, leider funktioniert sie nicht *siehe Anhang

Vielen Dank f[r eure Hilfe!

Wie gesagt, meine Lösung benötigt PHP - du musst es in der Template-Datei als Inline Style einfügen.
Ist vermutlich auch die einzige Möglichkeit.

Das etwas NICHT gecached werden soll, lässt sich nämlich nicht festlegen.
 
Ich bin absoluter Neuling in PHP, gerade gut genug um die Syntax zu lesen und ein wenig zu verstehen.

Kannst du mir erklaeren, wie ich das mit der uniqueID hinbekomme?
 
Ich kenne mich nicht wirklich mit Wordpress aus. Du musst die Template Datei finden, aus der der Footer kommt. Ich vermute das ist eine .php oder .phtml Datei. Du kannst mit einem Editor nach "custom_footer" suchen, dann solltest du die richtige Datei finden.
 
Zurück
Oben