Nezapomínejte na Gzip

Za jeden z všeobecných smyslů webblogů považuji funkci připomínací. Člověk je tvor nedokonalý, ne vždy se mu ty zajímavé a dobré myšlenky v hlavě usadí, rády někam utíkají. Dnes budu toho dobra a připomenu vám něco, co jistě víte, anebo si alespoň myslíte, že to víte, a to je přínosnost gzip komprese webových dokumentů.

Proč chodit kolem horké kaše, ne, neznám exaktní čísla, která by vám svojí chladnou jistotou sdělili skutečnou přínosnost gzip komprese. Nevím, kolik lidí, tak jako já, jsou odkázáni na pomalou (např. GPRS) linku a rovněž nedisponuji čísly, které by mluvili o ušetřených procentech, kilobajtech, či sekundách díky zapnuté gzip kompresi prohlížených stránek.

Přínosnost komprimování stránek znám pouze z toho subjektivního, empirického hlediska. Vím, že stránky s mnoha a mnoha komentáři (např.) či stránky obsahující velké množství textu (např.) se mi načítají nepříjemně dlouho, a také z pozorování vím, že zapnutí gzipu učiní v stahování velmi znatelný rychlostní pokrok.

Kdysi, s podstatně větší jistotou na jazyku psal o tomto tématu Radek Hulán, z jehož článku jsem si také vypůjčil dva řádky PHP kódu (viz níže) a přidal je např. do stránek Red Dwarf Searchu. Ve scénářích je patrná úspora více než 60% průtoku dat, ve vyhledávání kolísá kolem obdobných hodnot.

if (function_exists('ob_get_level') && (ob_get_level() > 0))
  ob_start("ob_gzhandler");

Nevím jak jiné publikační systémy, ale WordPress v nastavení umožňuje gzip kompresi zapnout. To jen tak na okraj, kdyby jste náhodou měli cestu kolem :-). Třeba tím jedním kliknutím někomu ze svých čtenářů ušetříte pár vteřin čekání.


Komentáře (3)

k formuláři

RSS kanál komentářů

    • Komentář číslo: 1
    • *
    • Jméno: dgx
    • Odesláno:
      24.1. 2007 — 15:32

    V PHP se mohou bít dva způsoby komprimování – jeden se spouští direktivou zlib.output_com­pression (ale nelze aktivovat přímo ve skriptu) a druhý zmíněným ob_start(„ob_gzhan­dler“);

    Přitom úroveň komprese se pro oba přístupy určuje společnou direktivou zlib.output_com­pression_level a hodnota 6 mi připadá jako dobrý kompromis.

    Ale jsou tu i komplikace: občas jeden nebo druhý způsob nefunguje, určité verze PHP mají své bugy, a rozhodně není možné/správné aktivovat obě kompresní metody zároveň. Proto se mi osvědčil následující © skript:

    public function enableCompression()
    {
        // test
        $ok = ob_gzhandler('', PHP_OUTPUT_HANDLER_START);
        if ($ok === FALSE) return FALSE; // not allowed
    
        if (function_exists('ini_set')) {
            ini_set('zlib.output_compression', 'Off');
            ini_set('zlib.output_compression_level', '6');
        }
        ob_start('ob_gzhandler');
        return TRUE;
    }
    • Komentář číslo: 2
    • *
    • Jméno: Kahi
    • Odesláno:
      24.1. 2007 — 16:09

    [1] dgx: → díky DGX za skvělé technické doplnění! trochu jsem to prozkoumal, a vypadá to, že level 6 je defaultní…

    • Komprese kódem z článku href=„http://­rds.kahi.cz/sce­nare/47/“ rel=„nofollow“>http:/­/rds.kahi.cz/sce­nare/47/
    • Komprese ála DGX href=„http://­rds.kahi.cz/sce­nare/47/?zip=d­gx“ rel=„nofollow“>http:/­/rds.kahi.cz/sce­nare/47/?zip=d­gx
      • Komprese ála DGX, level 1 href=„http:­//rds.kahi.cz/sce­nare/47/?zip=d­gx&level=1“ rel=„nofollow“>http:/­/rds.kahi.cz/sce­nare/47/?zip=d­gx&level=1
      • Komprese ála DGX, level 9 href=„http:­//rds.kahi.cz/sce­nare/47/?zip=d­gx&level=9“ rel=„nofollow“>http:/­/rds.kahi.cz/sce­nare/47/?zip=d­gx&level=9
    • Bez komprese href=„http://­rds.kahi.cz/sce­nare/47/?zip=n­o“ rel=„nofollow“>http:/­/rds.kahi.cz/sce­nare/47/?zip=no
    • Komentář číslo: 3
    • *
    • Jméno: Carl114
    • Odesláno:
      17.1. 2010 — 19:28

    Ahoj.
    Jak mám pomocí systému WordPress zapnout gzip? Píšeš, že to jde, ale já to v nastavení nenašel. Možná jen nevím jak na to. Budu rád za upřesnění. Díky :).

Přidat komentář

Nápověda ke psaní komentářů

Zde formátuje Texy!

  • *zvýraznění*
  • **silné zvýraznění**
  • > citace
  • "odkaz":http://kam
  • [4] reakce na komentář
  • zdrojové kódy a více

komentáře

úplně nahoru