Pixmac & Seznam
17. 8. 2010 v 14.43
Sérii o rychlosti
webu plynule nahradím sérií o javascriptovém frameworku jQuery. Nebudu rozebírat důvody, proč je dobré
používat framework a už vůbec vám nebudu radit, který je nejlepší. Na to
si člověk musí přijít sám ;) Sám jsem nahradil Prototype právě
knihovnou jQuery.
A právé teď přichází na scénu jQuery plugin hotkeys, který zvládne všechny zkratky ve všech moderních prohlížečích. Miniverze pluginu má jen 4.4 Kb, takže není třeba se bát stokilových molochů. „Bindování“ zkratek je pak až neskutečně triviální.
Zapínám odchytávání zkratky Ctrl+C (kopírování):$(document).bind(‚keydown‘, ‚ctrl+c‘, fn);A tady zase vypínám:
$(document).unbind(‚keydown‘, ‚ctrl+c‘, fn);Čekali jste něco víc? Bohužel, je to až takhle jednoduché. Další informace a živé ukázky přímo na stránkách projektu. A ještě jedna ukázka praktického využití tohoto pluginu. U nás ve fotobance Pixmac je stránkování ve výsledcích vyhledávání jednou z nejdůležitějších funkcí. Najít ten pravý obrázek do prezentace nebo na billboard prostě někdy není jednoduché. Maximální komfort tak zaručí náš „Auto result“ a stránkování pomocí šipek na klávesnici. Auto result spočítá maximální možný počet fotek na stránce (z viewportu), takže na malém monitoru dostanete třeba 8 fotek, kdežto na velkém třeba 30. Konec nepohodlného skrolování ;) Pak přichází na řadu přednačítání další stránky v době, kdy prohlížíte fotky na stránce současné. Je to tak směšně prosté a elegantní, že to nikdo z konkurentů nemá. V době kdy prstem mačkáte klávesu „vpravo“ (viz. plugin hotkeys) už jsou náhledy dávno načteny a další stránku dostanete rychleji než bys řek „jQuery“. Předchozí stránka je pak stále schovaná v DOMu a tak stisknutím klávesy „vlevo“ dostanete předchozí výsledek hledání stejně rychle.Však si to vyzkoušejte na nějakém příjemném tématu – žena v plavkách – a samozřejmě uvítám i kritiku, neb sto očí vidí víc, než jen těch deset našich. Díky ;)
V díle třetím ukážu jednu praktiku, která se hodí pro malé obrázky, typicky třeba ikonky, menší loga apod., kde lze ušetřit 100% HTTP requestů, které jsou největším žroutem času při načítání webu. Technika se jmenuje DATA URIs a podporují ji tyto prohlížeče – Firefox, Safari, Chrome, Internet Explorer od verze 8. Kompletní specifikaci najdete v RFC 2397.
Základním faktem je, že místo URL obrázku zapíšete do „src“ nebo v CSS do"url" zapíšete toto schéma: data:[<mediatype>][;base64],<data>
Například:
<img src=„data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3Ub/ /ge8WSLf/rhf/3kdbW1mxsbPmf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcpp V0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2×sBxqNgYPj/gAwXEQA7“ width=„16“ height=„14“ alt=„Ikona složky“>
Výsledkem bude taková hezká ikona, bez jediného HTTP requestu.
Na straně serveru potom musíte toto schéma z obrázku vygenerovat, například podle tohoto článku – http://www.sitepoint.com/…d-data-uris/ … a rozhodně doporučuji DATA URI kešovat, protože na straně serveru je víc takových operací náročných na paměť. Ale každý ušetřený HTTP požadavek za to stojí! Podívejte se ještě na můj příklad, jak mít stránku bez HTTP požadavků (zjistíte v záložce Síť ve FireBugu).
$(document).ready(function() { // kod, ktery se provede po nacteni stranky });
<!-- css, js → </head> <?php flush(); ?> <body> … <!-- content →
Vysvětlovat, proč je rychlost webu důležitá, by podle mě bylo pouhým marněním času. Tak jen ve zkratce, je důležitá pro lidi a pro vyhledávače. Jednoduchým selským rozumem a vlastní zkušeností lze vypozorovat, že stránky, která se načítají bleskově, nebo alespoň dostatečně rychle, se nám lépe a radostněji prochází, neb se nebojíme, že na další načtení stránky budeme muset čekat půl minuty. Vyhledávačům se pak dobře indexuje, protože za stejný čas projde více stránek než na pomalejších webech.
V několikadílném seriálu (ikdyž, znáte mě… nebo alespoň já se znám) se pokusím vysvětlit a praktikovat několik metod, které, ať už víc nebo míň, k rychlejšímu webu dopomůžou. Jenže! Jak získat nějaké ty údaje?
Pokud už váš web má nějakou historii
ve Webmaster Tools a alespoň nějakou návštěvnost, je možné, že vám
Google ukáže podobný rychlostní graf i s informací
o průměrné době načítání a přesnosti. Dokáže i porovnat
s ostatními weby, takže vám může říct: „
Načítání je rychlejší než u 73% ostatních webů.“
Tento nástroj se od svého bratra dost
liší v metodice měření, ikdyž bodová stupnice je stejná, 0 až
100, přičemž 100 je ideální výsledek a dosáhnout ho nemusí
být taková sranda, jak se na první pohled může zdát (pokud nemluvíme
o jednodstránkovém textovém webu).
Přikládám první příklad, zapracovali jsme na optimalizaci homepage
fotobanky Pixmac. Posledním
doporučením je „Use efficient CSS selectors“ (používejte efektivní CSS
selektory). A rovnou přiloží i příklady. Třeba „#categoriespage
.categorypage_box ul li a“ není dobrý selektor.
Měřící nástroj od Yahoo je daleko
přísnější ;) Tam kde Google Page Speed dává 96/100, tam
YSlow jen 81/100, takže prostor pro vylepšení tu stále je.
A co, že YSlow na webu Pixmac.com nejvíc trápí? Počet HTTP
requestů (21 obrázků v CSS) a Expire Headers
u statických souborů.YSlow dává jednotlivým bodů
i přesnější hodnocení, jako ve škole. A až F, takže
přesně víte, kde je prostor pro zlepšení. A nezapomeňte, 80%
výkonu ušetříte uděláním 20% optimalizací (Paretův princip).
Takže příště už o jednotlivých bodech (i prakticky), těch
nejdůležitejších. Pro pokročilé pak třeba Data URIs nebo
Link prefetching z HTML 5. Takže, změřte si stránky ;)

Pixmac je fotobanka s více než 10 miliony fotografií, ilustrací a vektorů.
Nejkomfortnější, nejpřívětivější a nejrychlejší fotobanka vůbec. Nákup fotografií a vektorů bez registrace do 3 minut!