Forum Vorschläge u. Tipps.

Einfaches Cache-System

Hallo, wir bauen für einen Kunden eine kleine Präsenz. Der Kunde hat Strato als Provider. Leider bietet Strato nur Schnecken-Performance. Als schnelle Abhilfe haben wir einen einfachen Seitencache implementiert. Sicher, dass sollte eigentlich ein Plugin werden. Aber bis wir das Plugin-System verstanden haben, das ganze erst einmal direkt. Viele Grüße aus/nach Bonn, Olav Schettler all_inc_front.php: ============ function cache_file() { global $template; $dir = $_SERVER['DOCUMENT_ROOT'] . '/papoo/cache/'; if ($_SERVER['QUERY_STRING']) { $cache_id = urlencode($_SERVER['QUERY_STRING']); } else { $cache_id = 'menuid%3D1'; } return $dir . $template . ':' . $cache_id . '.html'; } function cache_get() { $file = cache_file(); if (is_readable($file)) { readfile($file); return TRUE; } return FALSE; } function cache_put($content) { $file = cache_file(); $fh = fopen($file, "w"); fwrite($fh, $content); fclose($fh); } if (cache_get()) { exit(); } [...] print $output; cache_put($output); interna/templates/menu.inc.html: ===================== <script language="JavaScript" type="text/javascript"> <!-- document.writeln('</li><a href="rmcache.php?caller=' + escape(document.URL) + '">Cache leeren</li>'); //--> </script> interna/rmcache.php: ============== <?php function cache_remove() { $dir = $_SERVER['DOCUMENT_ROOT'] . '/papoo/cache/'; $dh = opendir($dir); while (($file = readdir($dh)) !== false) { if ($file{0} == '.') { continue; } unlink($dir . $file); } closedir($dh); } cache_remove(); header('Location: ' . $_REQUEST['caller']); ?>


Von olav am 01.02.2006; 13:57:46 Uhr [5302 Hits]

Re: Einfaches Cache-System

Hallo Olav, werd ich mal testen wie es so funktioniert , hört sich ja gut an.

Viele Grüße,

Carsten




Fragen zu Papoo? Die Doku hilft! Helfen auch Sie mit!


Von Carsten Euwens am 02.02.2006; 10:05:42 Uhr [171 Hits]

Re: Einfaches Cache-System

Hallo Olav, ich hatte mir zu diesem Thema auch schon mal Gedanken gemacht. Ist aber echt ziemlich kompliziert. Warum? Hier ein kleines Beispiel: Woher weiss dein Cache-System welche Sprache gerade ausgewählt ist? Die Sprache wird quasi einmal gesetzt und anschliesend ist ein Link auf eine deutsche Seite von einem auf eine englische nicht mehr zu unterscheiden. Papoo regelt das intern durch setzen einer Session-Variablen. Diese Information müsste in das Cache-System ja irgendwie mit einfliesen. Weiteres Problem: Benutzer-Rechte. Woher weiss dein Cache-System welche Rechte ein Benutzer gerade hat, oder um es anders auszudrücken: Wenn ein bestimmter Menü-Punkt nicht von "Jeder" gesehen werden kann, dürfen Benutzer der Gruppe "Jeder" diesen Menü-Punkt auch nicht sehen. Setzt aber ein Benutzer, der das Recht hat diesen Menü-Punkt zu sehen, den Cache, würden ja nun auch Benutzer der Gruppe "Jeder" diesen Menü-Punkt sehen. Wie du siehst, ist das nicht ganz so einfach wie von dir gedacht. Prinzipiell wäre eine Cache-Funktion aber schon eine feine Sache

Stephan


Stephan Bergmann (aka b.legt210)
macht XiMiX.de und Sprechomat.de

Von b.legt210 am 02.02.2006; 10:59:46 Uhr [177 Hits] Entwickler

Re: Einfaches Cache-System

Kleine Ergänzung: Am Anfang von cache_get() und cache_put() jeweils --- if ($_SERVER['REQUEST_METHOD'] != 'GET') { return FALSE; } --- einfügen. Dann kommt die Mechanik auch mit dem Kontaktformular klar. Olav


Von olav am 02.02.2006; 18:05:34 Uhr [157 Hits]

Re: Einfaches Cache-System

Hallo Stephan, schon klar. Unsere einfache Site gibt's aber augenblicklich nur in deutsch und die eine Redakteurin hat alle Rechte. Also die einfachste aller Welten. Die Alternative -also ohne diese Cache-Funktionen- wäre aber Gemecker wegen Schneckentempo bei Strato und Schlaupilzkommentare wie "Ist ja klar, dass ein CMS sowieso zu langsam ist". Olav


Von olav am 02.02.2006; 18:11:41 Uhr [181 Hits]

Re: Einfaches Cache-System

Hi Olav, alles klar. Wollte das auch nur mal so in den Raum stellen. Evtl. springt ja auch mal "irgend ein kluges Köpfchen" auf dieses Thema an und zaubert eine perfekte einfache Lösung aus dem Hut. Ich selbst hab das auch mal ansatzweise in Papoo integriert. Als dann aber so langsam absehbar wurde, dass das Ganze doch nicht so einfach wird und es doch einige grundsätzliche Änderungen in Papoo bedarf, legte ich das alles mal auf Eis. Interessant ist das Thema aber allemal, zumal Papoo im Moment wirklich nicht das schnellste System ist

Stephan


Stephan Bergmann (aka b.legt210)
macht XiMiX.de und Sprechomat.de

Von b.legt210 am 02.02.2006; 18:45:29 Uhr [259 Hits] Entwickler

Sie müssen sich anmelden, um einen Beitrag schreiben zu können.

.

xxnoxx_zaehler