Zum Inhalt springen

Seite neu cachen lassen, aber wie?

Erstellt am 12. November 2007 · 4 Antworten · letzte Antwort am 19. November 2007

Tags: Cache & Performance, Frage

FallenAngel ·

Hallo,

ich lasse Benutzer im Frontend ihr Profil editieren, daß mittels einer Extension erstellt wurde. Die Daten welche sie dort angeben, sind auch öffentlich für alle Benutzer einsehbar.

Die Seite muß nun unmittelbar nach Editierung neu gecached werden, um die Änderungen sofort sichtbar zu machen.

Hierzu habe ich auch folgenden Code gefunden:

$TCE = t3lib_div::makeInstance('t3lib_TCEmain');
$TCE->admin = 1;
$TCE->clear_cacheCmd('pages');
$TCE->clear_cacheCmd($pid);

Das Problem ist nun, daß der Inhalt nicht rein über ein page-id gezogen wird, sondern über zusätzliche GET-Parameter. Ich möchte nun natürlich nicht den cache für alle Inhalte unter $pid löschen, sondern nur für den einen bestimmten GET-parameter.

Weiß jemand, wie man das anstellt?

vielen Danke schonmal im Vorraus

just2b ·

Hallo,

ich kenne die cache tabellen zuwenig, aber da müsste man ja auch dort manuell das rauslöschen können, nicht?

georg

FallenAngel ·

die Cache-Tabellen sind ziemlich kryptisch. Eine unique-id ist nur über den cHash gegeben. Wenn ich also den cHash generieren könnte, wüßte ich auch, welchen Datensatz ich löschen lassen muß!

FallenAngel ·

Ich hab mir grad mal ein wenig angeschaut. Der cHash, der in den URLs auftaucht ist leicht zu produzieren; der besteht nur aus _GET Variablen.

Das Problem ist, daß in der DB der Hash anders abgespeichert wird. Da kommen noch weitere Größen mit rein, und dann wird das ganze nochmal verschlüsselt. (Deswegen gibt es manchmal mehrere cachings zu identischem cHash!)

Irgendwie sieht es danach aus, als würde ein konstruieren des hashes um den Datensatz zu löschen nicht weniger kompliziert sein, als schlichtweg die gegebenen Klassen zu verwenden. Aber das ganze erscheint mir alles sehr umständlich.

Hat schon jemand Erfahrung damit?