Ladezeiten-Optimierung

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
meltemi
Posts: 177
Joined: Sat Feb 22, 2014 10:11 pm
Location: Franken (Deutschland)
Contact:

Re: Ladezeiten-Optimierung

Post by meltemi » Mon Sep 29, 2014 10:45 pm

cmb wrote:Oh, ich glaube da liegt ein Missverständnis vor.
Ja, für mich hatte es so ausgesehen, als hättest Du das Risiko dieses speziellen Problems kleinreden wollen.

Zur Hauptsache:
cmb wrote:Aber grundsätzlich meinte ich mit "ganz am Ende" folgendes:
</body>
</html>
<?php
// setzte die benötigten Header-Felder
?>
Danke, das ist eine genaue Angabe :-)
cmb wrote:Es bliebe noch die Möglichkeit am Ende des Templates die entsprechenden Headerfelder manuell zu setzen, falls der User nicht als Admin angemeldet ist, also etwa: ...
Manuell ist doch kein Problem, macht man doch nur einmal.
cmb wrote:Allerdings würde ich nicht ausschließen, das ein solches Caching eben doch hier und da Probleme verursachen könnte; zumindest müsste man gründlichst testen, ...
Die Sache ist jetzt angeleiert, alles Weitere wird sich zeigen.
albert wrote:@Christoph,
dein Code ... scheint gut zu funktionieren, und bringt auch was!
@albert, vermutlich hast Du jetzt weltweit das einzige Verfallsdatum einer CMSimple(XH)-Seite jünger als 19. November 1981. Du bist ein echter Pionier :-)

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Ladezeiten-Optimierung

Post by cmb » Tue Sep 30, 2014 8:34 am

meltemi wrote:
cmb wrote:Allerdings würde ich nicht ausschließen, das ein solches Caching eben doch hier und da Probleme verursachen könnte; zumindest müsste man gründlichst testen, ...
Die Sache ist jetzt angeleiert, alles Weitere wird sich zeigen.
Ich hoffe, dass sich genug Tester finden, die auch Feedback geben.

Um die Möglichkeit zu haben einzelnen Seiten eine individuelle Caching-Dauer zuzuweisen, habe ich mal auf die Schnelle ein Plugin geschrieben: Cache_XH. Voraussetzung ist CMSimple_XH 1.6.4. Installation wie üblich. In der Konfiguration legt man die normale Caching-Dauer (in Minuten) fest; im Page-Data-Tab "Cache" kann das dann für die jeweilige Seite überschrieben werden (leer: Vorgabe aus der Konfiguration; 0: nicht Cachen). Um das Plugin zu aktivieren, muss man ans Ende des Templates schreiben:

Code: Select all

</html>
<?php cache()?>
meltemi wrote:@albert, vermutlich hast Du jetzt weltweit das einzige Verfallsdatum einer CMSimple(XH)-Seite jünger als 19. November 1981. [...]
Nein, das glaube ich nicht. Dieses Verfallsdatum dürfte i.d.R. nur dann gesendet werden, wenn eine Session gestartet wurde. Das passiert weder bei CMSimple_XH < 1.6 noch CMSimple <= 4.4.5, falls keine zusätzlichen Erweiterungen, die eine Session starten, im Spiel sind. Siehe z.B. http://3-magi.net/ (ja, ich weiß, ich müsste dringend mal upgraden).

Aber vermutlich ist Albert der erste mit einem CMSimple_XH 1.6+, das ein jüngeres Verfallsdatum ausgibt, und das dank meltemi, ohne den das "Verfallsdatums-Problem" wohl gar nicht aufgefallen wäre.
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 2967
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Ladezeiten-Optimierung

Post by lck » Tue Sep 30, 2014 9:30 am

Der Link zum Download zu Cache_XH funktioniert nicht.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Ladezeiten-Optimierung

Post by cmb » Tue Sep 30, 2014 9:33 am

Ludwig wrote:Der Link zum Download zu Cache_XH funktioniert nicht.
Danke für den Hinweis. Habe ich jetzt korrigiert.
Christoph M. Becker – Plugins for CMSimple_XH

albert
Posts: 526
Joined: Sun Mar 07, 2010 8:01 pm
Location: Germany
Contact:

Re: Ladezeiten-Optimierung

Post by albert » Tue Sep 30, 2014 6:51 pm

wow jetzt sogar als Plugin: Cache_XH
:D KLASSE
bei mir scheint es problemlos zu klappen, im config war allerdings "180" voreingestellt.
Es cached, seitenweise auf "0": cached da dann nicht. Alles wie gewünscht! Kann man natürlich nur ausgeloggt testen.
Wellrad Listenansicht wird gecached, Bestellvorgang klappt.
PRIMA! Danke

meltemi
Posts: 177
Joined: Sat Feb 22, 2014 10:11 pm
Location: Franken (Deutschland)
Contact:

Re: Ladezeiten-Optimierung

Post by meltemi » Tue Sep 30, 2014 9:37 pm

cmb wrote:Um die Möglichkeit zu haben einzelnen Seiten eine individuelle Caching-Dauer zuzuweisen, habe ich mal auf die Schnelle ein Plugin geschrieben: Cache_XH. Voraussetzung ist CMSimple_XH 1.6.4. Installation
Du bist ja schneller, als es Peter Harteg je erlaubt hätte ;-)

Für alle, die kein CMSimple_XH 1.6.4 nutzen oder die nicht für jeweils neun Code-Zeilen ein eigenes Plugin brauchen, müßte die Cache-Steuerung unterschiedlich je nach Seiten eigentlich auch so zu lösen sein (ich habe in Deinen gestrigen Code für die template.htm nur eine zusätzliche Abfrage eingebaut):

Code: Select all

</body>
</html>
<?php
if (!XH_ADM) {
  if (strstr($title, 'Forum')) {$expire = 3 * 60;} // Forum: 3 Minuten (oder was anderes)
  else {$expire = 3 * 60 * 60;} // andere Seiten: 3 Stunden
  $expires = gmdate('D, d M Y H:i:s', time() + $expire) . ' GMT';
  $mod = gmdate('D, d M Y H:i:s', filemtime($pth['file']['content']) + $expire) . ' GMT';
  header('Cache-Control: public, max-age=' . $expire);
  header('Expires: ' . $expires);
  header('Last-Modified: ' . $mod);
  header('Pragma:');
}
?>
Leider bin ich mit meinem eigenen Kram noch nicht so weit, daß ich das jetzt schon testen könnte.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Ladezeiten-Optimierung

Post by cmb » Wed Oct 01, 2014 12:59 pm

meltemi wrote:Für alle, die kein CMSimple_XH 1.6.4 nutzen oder die nicht für jeweils neun Code-Zeilen ein eigenes Plugin brauchen, müßte die Cache-Steuerung unterschiedlich je nach Seiten eigentlich auch so zu lösen sein (ich habe in Deinen gestrigen Code für die template.htm nur eine zusätzliche Abfrage eingebaut):
[...]
Sehr pragmatisch. :)

Zum Erkennen der Seite hast Du $title gewählt, was meist funktionieren dürfte. Allerdings enthält $title außer der Seitenüberschrift auch noch den "Namen" der Website. Falls es da Kollisionen geben könnte, könnte man statt $title $h[$s] (enthält nur die Seitenüberschrift) oder $su (enthält den URL-Teil, der die Seite aufruft) verwenden. Und die Funktion strstr() (die sehe ich seit einer Weile sehr oft im CMSimple-Umfeld; vielleicht liest der gemeinte Entwickler ja mit -- daher die Bemerkung) wird eigentlich sehr selten benötigt; das PHP Handbuch empfiehlt zurecht:
Wenn Sie nur herausfinden möchten, ob ein bestimmter needle innerhalb von haystack vorkommt, verwenden Sie stattdessen die schnellere und weniger speicherintensive Funktion strpos().
Also wäre auch folgendes denkbar:

Code: Select all

</body>
</html>
<?php
if (!XH_ADM) {
  if (strpos($h[$s], 'Forum') !== false) {$expire = 3 * 60;} // Forum: 3 Minuten (oder was anderes)
  else {$expire = 3 * 60 * 60;} // andere Seiten: 3 Stunden
  $expires = gmdate('D, d M Y H:i:s', time() + $expire) . ' GMT';
  $mod = gmdate('D, d M Y H:i:s', filemtime($pth['file']['content']) + $expire) . ' GMT';
  header('Cache-Control: public, max-age=' . $expire);
  header('Expires: ' . $expires);
  header('Last-Modified: ' . $mod);
  header('Pragma:');
}
?>
Christoph M. Becker – Plugins for CMSimple_XH

meltemi
Posts: 177
Joined: Sat Feb 22, 2014 10:11 pm
Location: Franken (Deutschland)
Contact:

Re: Ladezeiten-Optimierung

Post by meltemi » Wed Oct 01, 2014 11:03 pm

PHP-Handbuch (von cmb zitiert) wrote:Wenn Sie nur herausfinden möchten, ob ein bestimmter needle innerhalb von haystack vorkommt, verwenden Sie stattdessen die schnellere und weniger speicherintensive Funktion strpos().
Oh, danke für den hilfreichen Hinweis! Lesen macht schlau.

In meiner runtergeladenen älteren Version des PHP-Handbuchs stand das noch nicht drin. Ich habe mir jetzt die neue Version für meinen Rechner besorgt.

Meine PHP-Kenntnisse sind anfängerhaft und äußerst bescheiden. Ich brauche PHP auch nur selten.
cmb wrote:Zum Erkennen der Seite hast Du $title gewählt, was meist funktionieren dürfte.
In meiner template.htm frage ich für mehrere andere Zwecke $title ab, und das funktioniert. Im Vergleich etwa zu mini1 ist meine template.htm deshalb recht umfangreich. Hab' schon überlegt, das Template maxi1 zu nennen ;-)
cmb wrote:die Funktion strstr() (die sehe ich seit einer Weile sehr oft im CMSimple-Umfeld; vielleicht liest der gemeinte Entwickler ja mit
Welcher Entwickler ist denn der gemeinte?

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Ladezeiten-Optimierung

Post by cmb » Thu Oct 02, 2014 11:33 am

meltemi wrote:In meiner template.htm frage ich für mehrere andere Zwecke $title ab, und das funktioniert.
Grundsätzlich funktioniert das gewiss. Es könnte halt gewisse Grenzfälle geben, die problematisch sind. Z.B. wenn der Site-Title "Mein Forum" und die Seite "Kontakt" aufgerufen wird, dann ist $title per Voreinstellung "Mein Forum – Kontakt". Da würde dann strstr($title, 'Forum') wahr sein (genauso wie strpos($title, 'Forum') !== false), obwohl das dann nicht erwünscht wäre. Ist aber zugegeben etwas hypothetisch.
meltemi wrote:Welcher Entwickler ist denn der gemeinte?
Sag ich nicht. :)
Christoph M. Becker – Plugins for CMSimple_XH

meltemi
Posts: 177
Joined: Sat Feb 22, 2014 10:11 pm
Location: Franken (Deutschland)
Contact:

Re: Ladezeiten-Optimierung

Post by meltemi » Sat Nov 15, 2014 11:35 pm

cmb wrote:
meltemi wrote:Sowohl die CMSimple_XH-Startseite als auch die CMSimple_4-Startseite haben dieses gähnend alte Verfallsdatum, [...]
Stimmt -- da stimmt was nicht. Danke für den Hinweis; das schau ich mir gleich näher an.
Ich habe zufällig einen Leidensgenossen gefunden, der, obwohl viel jünger als Ihr, schon genauso lange abgelaufen ist (19·Nov·1981·08:52:00·GMT):
http://tinyurl.com/oezhxju

Kirby CMS ist in Euerem Bunde der Dritte ;-)

Nix für ungut, aber ich möchte darauf hinweisen, daß an dieser Ecke vielleicht ein gewisser Handlungsbedarf besteht.

Post Reply