Komprimace a buffer webových stránek

V PHP existuje docela praktická funkce ob_start, která veškerou komunikaci předtím, než ji pošle do Vašeho kompu, ukládá k sobě do bufferu. V praxi to má několik zásadních výhod. Jaké?

  1. První a nejzásadnější pozitivum je možnost komprimace. Odlehčíte drátům, routerům nebo čemukoliv, skrz co data protékají. Stránky se načtou rychleji, někdy se hovoří až o 80% úsporách množství dat. Pokud je to pravda, není to zanedbatelné.
  2. Druhou zásadní výhodou je, že zdrojový kód se nejdříve poskládá, pak odešle. Z toho vyplývá, že před samotným „odesláním“ můžete kdykoli měnit jakoukoli část. Lze např. korektně přesměrovat i poté, co byly odeslány hlavičky, stránka vyhazuje nějaké texty nebo jinou HTML část webu. Ono totiž ještě nic odesláno nebylo. Dá se např. posledním řádkem kódu měnit title webu, který je na úplném začátku (což je samozřejmě nesystémová hovadina) apod. Minimálně ale pro to přesměrování je to velmi praktické – lze přesměrovat kdykoli během běhu skriptu, a tedy např. i na jeho konci po části, která již do prohlížeče poslala nějaké to HTML.
  3. s bufferem lze před odesláním pracovat, lze např. uklidit zdrojový kód pomocí Tidy – více v článku Funkce ob_start a PHP Tidy.

Jak na to prakticky?

Obyčejný buffer

ob_start(); // spustit buffer

//
// sem nějaké HTML / PHP vašich webových stránek
//

ob_end_flush(); // konec srandy, spláchnout a vysmrknout

Komprimace webových stránek

if(!ob_start("ob_gzhandler")) ob_start(); // spustit GZIP; ošetření, když není nainstalována GZIP komprese

//
// sem nějaké HTML / PHP vašich webových stránek
//

ob_end_flush(); // konec srandy, spláchnout a vysmrknout
Vyvěšeno v PHP prakticky, Tvorba webových stránek a oštítkováno , , . Přidat si do záložek permalink. Přidat komentář nebo zanechat trackback: trackback URL.

Přidat komentář

Váš email nebude nikdy zveřejněn. Povinná pole jsou označena *

*
*

Můžete použít HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>