Minifikace html před odesláním

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Ellesmess
Člen | 21
+
+1
-

Zdravím,
něco jsem zkoušel najít, ale nějak jsem se nedokázal poprat se sendResponse :(
obecně řeším kompresi výstupu HTML. Zajímá mě, zda lze nějak „minify“ výsledný HTML (tzn. po renderu/sestavení šablon)?

  • jak zachytit buffer před odesláním nějakým slušným způsobem?
  • lze „bezpečně“ obsah minifikovat? (odstranění mezer, new-line, …)

    Předem děkuji za odpovědi,

    Ellesmess

enumag
Člen | 2118
+
0
-

Imho by bylo lepší použít mod_pagespeed.

Bezpečné to není kvůli tagům <pre> a <textarea>.

Editoval enumag (12. 4. 2013 16:47)

Ellesmess
Člen | 21
+
+1
-

použivám lighttpd/nemám přístup ke konfiguraci webserveru (nějaký bastl hosting :|)

díky :)

enumag
Člen | 2118
+
0
-

No primárně bych se staral zda ti lighttpd gzipuje výstup. Pokud ano, je otázka zda má vůbec smysl tohle řešit – zrychlíš přenos dat, ale musel bys použít output buffering a při každém požadavku ty mezery mazat nějakým regulárním výrazem takže zpomalíš generování HTML. Ve výsledku by to mohlo být i pomalejší než původně.

Glottis
Člen | 129
+
0
-

enumag napsal(a):

No primárně bych se staral zda ti lighttpd gzipuje výstup. Pokud ano, je otázka zda má vůbec smysl tohle řešit – zrychlíš přenos dat, ale musel bys použít output buffering a při každém požadavku ty mezery mazat nějakým regulárním výrazem takže zpomalíš generování HTML. Ve výsledku by to mohlo být i pomalejší než původně.

presne to me taky napadlo. ma vubec nejaka minifikace smysl? zkousel to nekdo merit? treba u js, css? i u nette se mi nejak nezda ze minified verze ma nejaky dopad na vykon. spis se mi to zda horsi nez nette po souborech. ale nic jsem nemeril :)

Ellesmess
Člen | 21
+
0
-

Minifikace by čistě hypoteticky mohla mít smysl v případě rychlosti zpracování u klienta…? Je to spíše úvaha, na druhou stranu, pokud je smyslem jen odstranit mezery (případně další drobné úpravy), možná to až takový smysl nemá.

Věc B jsou pak ještě naši mobilní operátoři, že? 1GB dat není mnoho (viz. Davidova hláška o „neomezenosti“ 600MB od Vodafonu) a když pošlu místo 42kB jen 30kB, v koncovém důsledku je to šetrnější. A i kdyby nebyl argument FUP, náhodně se vyskytující 3G a pomalé připojení by být mohlo :)…

enumag
Člen | 2118
+
0
-

Ellesmess: Jasně, na mobilní verzi to z důvodů které jsi uvedl může mít význam. Ovšem pokud jde o desktopovou verzi tak by ty důsledky pro věšinu uživatelů mohli být spíše negativní.

Glottis: Tohle je OT, ale odpovím ti. O minifikaci HTML/CSS/JS se zde bavíme kvůli snížení množství přenášených dat ze serveru k uživateli. Minifikace Nette má úplně jiný smysl – rychlejší načítání frameworku PHPkem. Práce s filesystémem není zrovna levná takže je určitě rychlejší načítat jeden soubor než jich načítat 150 (nebo kolik jich Nette má). Na druhou stranu takto načteš i ty části Nette které nepotřebuješ a PHP tyto části interpretuje zbytečně. Má to tedy tím větší význam, čím větší část frameworku tvá aplikace používá. Pokud jde o výsledný efekt tak hraje hodně velkou roli to, zda máš nainstalované něco jako Zend Optimizer nebo xCache. Zda to někdo měřil v praxi nevím.