CnC: Cache&Compress für CMSimple_XH

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
cmss
Posts: 84
Joined: Mon Jan 02, 2017 6:15 pm

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmss » Thu Nov 23, 2017 7:08 pm

Ich habe übrigens einen weiteren Ansatz gefunden, aus dem man auch ein ähnliches Plugin machen könnte : CSS-JS-Booster

http://www.peterkroener.de/der-css-js-b ... leunigung/
Der Author lädt sogar ein ein Plugin zu erstellen.

https://github.com/Schepp/CSS-JS-Booster (leider nur für php 5 geprüft)

Der soll das letzte bisschen herauskitzeln - Es gibt zum Testen die Browser-Erweiterung github.com/marcelduran/yslow/ Yslow

(Bilder kann man beispielsweise mit

echo 'background-image: url(data:image/gif;base64,'.base64_encode(file_get_contents('beispiel.gif')).');'; (Bildpfad hinzufügen!) laden.)

frase
Posts: 1664
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Sun Dec 17, 2017 12:26 pm

Das Ding läuft jetzt schon eine Weile bei mir in einigen Seiten -> sehr gut!
Probleme konnte ich bisher nicht ausfindig machen -> sehr gut!

Evtl. könnte man bei der CSS-Minifizierung noch einige Bytes einsparen, wenn die eigenartigen Zeilenschaltungen vermieden würden.
Ich kann nicht herausfinden, nach welchem Schema diese gesetzt werden - bzw. was ursächlich dafür ist.
Allerdings kann ich mir gut vorstellen, dass der Algorithmus dafür ziemlich kompliziert ist :shock:

Hier mal ein Beispiel einer minifizierten CSS-Datei. An den roten Punkten könnte es getrost "weitergehen" ohne Zeilenschaltung.
cnc.png
cnc.png (8.13 KiB) Viewed 128 times

cmb
Posts: 12211
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Sun Dec 17, 2017 12:58 pm

frase wrote:Evtl. könnte man bei der CSS-Minifizierung noch einige Bytes einsparen, wenn die eigenartigen Zeilenschaltungen vermieden würden.
Ich kann nicht herausfinden, nach welchem Schema diese gesetzt werden - bzw. was ursächlich dafür ist.
Allerdings kann ich mir gut vorstellen, dass der Algorithmus dafür ziemlich kompliziert ist :shock:

Hier mal ein Beispiel einer minifizierten CSS-Datei. An den roten Punkten könnte es getrost "weitergehen" ohne Zeilenschaltung.
[…]
Hm, ob da ein Space- oder ein Newline-Zeichen steht, ist doch eigentlich egal – beides benötigt ein Byte. Okay, bei der anschließenden Komprimierung könnte, wenn immer nur Leerzeichen verwendet würden, vielleicht noch das ein oder andere Byte eingespart werden. Aber, für eine handvoll Bytes …

Viel relevanter ist die JavaScript-Minifizierung. CnC verwendet wohl einen eher einfach gestrickten Minifier; da bietet es sich an, JS-Skripte mit einem mächtigeren Tool wie Closure Compiler, UglifyJS o.ä. zu minifizieren und entsprechend auszuliefern, was ich allen Pluginentwicklern und Templatedesignern empfehlen würde. Beispiel twocents.js:
  • Original: 12483 Bytes
  • CnC: 1983 Bytes (6924 Bytes unkomprimiert)
  • Closure Compiler & CnC: 1659 Bytes (4993 Bytes unkomprimiert)
Christoph M. Becker –Plugins for CMSimple_XH, but not for CMSimple 4+

frase
Posts: 1664
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Sun Dec 17, 2017 1:05 pm

Jajajaja, ich wollte eigentlich das Plugin loben und nicht zerreißen ;-)

Weil optisch ein großer Unterschied zwischen LF und Leerzeichen ist, dachte ich Unwissender, dass da mehr bei rüberkommt.

cmb
Posts: 12211
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Sun Dec 17, 2017 1:44 pm

frase wrote:Weil optisch ein großer Unterschied zwischen LF und Leerzeichen ist, dachte ich Unwissender, dass da mehr bei rüberkommt.
Eigentlich ist es noch extremer: einfache Minifizierer bringen nicht viel, falls keine Kommentare vorhanden sind, und sowieso komprimiert wird. Beispiel: ein xhstyles.css aus einer Installation mit einigen zusätzlichen Plugins:
  • Original: 33527 Bytes – komprimiert 7196 Bytes
  • CnC: 23417 Bytes – komprimiert 5309 Bytes
  • Nach entfernen aller Kommentare (triviale RegExp): 29315 Bytes - komprimiert 5773 Bytes
Aber okay, wie sieht es aus, wenn man die Newlines durch Leerzeichen ersetzt:
  • Minifiziert: 23417 Bytes – komprimiert 5309 Bytes
  • Newline → Space: 23417 Bytes – komprimiert 5213 Bytes
Schon etwas mehr als ich gedacht hätte.
frase wrote:Jajajaja, ich wollte eigentlich das Plugin loben und nicht zerreißen ;-)
Auch mIr liegt es fern, CnC zu zerreißen – im Gegenteil: ich finde es sehr sinnvoll. Ich wollte nur betonen, dass man durchaus noch mehr einsparen kann, wenn man zusätzlich andere Tools nutzt. Und vermutlich kann man bezüglich JS noch mehr einsparen, wenn man Skript-Ressourcen verwendet anstatt längere Scripte direkt im HTML auszugeben – diesbezüglich könnte beispielsweise beim TinyMCE noch nachgebessert werden.
Christoph M. Becker –Plugins for CMSimple_XH, but not for CMSimple 4+

frase
Posts: 1664
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Sun Dec 17, 2017 1:59 pm

Wie beinahe immer, hast du recht.
cmb wrote: ... diesbezüglich könnte beispielsweise beim TinyMCE noch nachgebessert werden.
Na ja, ich denke (meine private Meinung), dass es im Adminmodus ziemlich egal ist, dass man evtl. 1 bis 2 Sekunden länger auf den Tiny warten muss.
Auf Frontend-Seiten sieht es da schon anders aus.
Da stört es mich schon eher, dass der Tiny bei Aufruf (bei Internetverbindung) manchmal irgendwohin schaltet (cdn?) und ich dann wirklich 3-7 Sekunden oder länger warten muss. Das passiert allerdings nur sehr selten. Ist man offline - dann gar nicht.

Post Reply