SlideShare a Scribd company logo
1 of 10
Download to read offline
Optimalizace
rychlosti stránek
Johan Hornof, Keyup 2014
Proč?
• Uživatel aktivita na stránce, míra opuštění
• Google hodnocení stránky, pozice
• Klient předchozí dvě
• Vývojář předchozí tři
Kdy?
• DNS resolving
• Odesílání dat na server (POST)
• Zpracování požadavku a generování odpovědi
• Odesílání dat
• Vykreslování
• JS příp. donačítání (XHR, image lazy loading)
Co?
• Server
• Databáze - SQL queries
• Obrázky
• Skripty v prohlížeči
• HTML
• CSS
• Requesty na služby třetích stran (ze serveru i prohlížeče)
Jak?
• Server hlavičky, cookies, gzip
• Databáze indexy, počet dotazů
• Obrázky JPG vs. PNG, sprites, favicon, max. 800px
• CSS a JS minifikovat, nepoužívat inline, nedůležité na konec HTML,

frameworky jen, když je skutečně potřeba
• HTML vyčistit a zmenšit DOM
• CDN JS frameworks, CSS resets, fonts
• Externí skripty tracking codes, like buttons, embedded iframes
Nástroje
• Váš prohlížeč

Inspektor

Chyby v konzoli

Vodopádový model načítání (rychlost, velikost, XHR)
• PageSpeed Insights 

browser extension

https://developers.google.com/speed/pagespeed/insights/
• GTMetrix

YSlow + PageSpeed, PDF export, grades

http://gtmetrix.com
• SmushIt

http://www.smushit.com
Cache
• Memcached, Varnish, APC

• Browser cache

• Local Storage (příp. IndexedDB)
Mobile
• Ještě důležitější rychlost i velikost stránky

myslet na to, jaké to je při připojení přes EDGE,

některé funkce uživatel na mobilu z logiky věci 

nikdy dělat nebude, není proto potřeba mu je nabízet
• Vynechat elementy, které nejsou vidět

nikoli jen skrýt
• Dát si pozor na velikost klikacích polí

lze na ně tapnout prstem
• Pozor na scroll lock

najede se na google mapu a najednou

nelze scrollovat stránku, protože 

touch eventy odchytává mapa
Shrnutí
• Zmenšovat, zmenšovat, zmenšovat
• Inline kód je fuj
• Pokud to lze udělat v CSS, udělat to v CSS
• Testovat na mobilu a tabletu bez wifi
• Pokud něco děláte proto, že to je jediný
způsob, jaký znáte, tak to děláte špatně
Díky za pozornost

More Related Content

What's hot

Glami - jak řešíme performance, aneb jak neshodit web TV reklamou
Glami - jak řešíme performance, aneb jak neshodit web TV reklamouGlami - jak řešíme performance, aneb jak neshodit web TV reklamou
Glami - jak řešíme performance, aneb jak neshodit web TV reklamouPetr Bechyně
 
URL Profiler - víc, než OpenRefine pro lamy:)
URL Profiler - víc, než OpenRefine pro lamy:)URL Profiler - víc, než OpenRefine pro lamy:)
URL Profiler - víc, než OpenRefine pro lamy:)Zdeněk Dvořák
 
Výkonnost webových aplikací
Výkonnost webových aplikacíVýkonnost webových aplikací
Výkonnost webových aplikacíTaste Medio
 
Rajce - nabidka webu
Rajce - nabidka webuRajce - nabidka webu
Rajce - nabidka webuguesta2452c
 
Prezentace jak zrychlit načítání webu
Prezentace jak zrychlit načítání webuPrezentace jak zrychlit načítání webu
Prezentace jak zrychlit načítání webuSUPERKODERS
 
Tvorba knihy na Kindle a další ebooky - obhajova odborné maturitní práce
Tvorba knihy na Kindle a další ebooky - obhajova odborné maturitní práceTvorba knihy na Kindle a další ebooky - obhajova odborné maturitní práce
Tvorba knihy na Kindle a další ebooky - obhajova odborné maturitní práceIvo Kostecký
 
Less a LessPHP
Less a LessPHPLess a LessPHP
Less a LessPHPcubaguest
 
Optimalizace webových aplikací
Optimalizace webových aplikacíOptimalizace webových aplikací
Optimalizace webových aplikacíVašek Purchart
 
Oxygen Builder - Kyslík pro WordPress
Oxygen Builder - Kyslík pro WordPressOxygen Builder - Kyslík pro WordPress
Oxygen Builder - Kyslík pro WordPressAleš Sýkora
 

What's hot (10)

Glami - jak řešíme performance, aneb jak neshodit web TV reklamou
Glami - jak řešíme performance, aneb jak neshodit web TV reklamouGlami - jak řešíme performance, aneb jak neshodit web TV reklamou
Glami - jak řešíme performance, aneb jak neshodit web TV reklamou
 
URL Profiler - víc, než OpenRefine pro lamy:)
URL Profiler - víc, než OpenRefine pro lamy:)URL Profiler - víc, než OpenRefine pro lamy:)
URL Profiler - víc, než OpenRefine pro lamy:)
 
Zrychlujeme web
Zrychlujeme webZrychlujeme web
Zrychlujeme web
 
Výkonnost webových aplikací
Výkonnost webových aplikacíVýkonnost webových aplikací
Výkonnost webových aplikací
 
Rajce - nabidka webu
Rajce - nabidka webuRajce - nabidka webu
Rajce - nabidka webu
 
Prezentace jak zrychlit načítání webu
Prezentace jak zrychlit načítání webuPrezentace jak zrychlit načítání webu
Prezentace jak zrychlit načítání webu
 
Tvorba knihy na Kindle a další ebooky - obhajova odborné maturitní práce
Tvorba knihy na Kindle a další ebooky - obhajova odborné maturitní práceTvorba knihy na Kindle a další ebooky - obhajova odborné maturitní práce
Tvorba knihy na Kindle a další ebooky - obhajova odborné maturitní práce
 
Less a LessPHP
Less a LessPHPLess a LessPHP
Less a LessPHP
 
Optimalizace webových aplikací
Optimalizace webových aplikacíOptimalizace webových aplikací
Optimalizace webových aplikací
 
Oxygen Builder - Kyslík pro WordPress
Oxygen Builder - Kyslík pro WordPressOxygen Builder - Kyslík pro WordPress
Oxygen Builder - Kyslík pro WordPress
 

Similar to Optimalizace rychlosti stránek

Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPressTomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPressColpirio.com s.r.o.
 
Window Design and Development
Window Design and DevelopmentWindow Design and Development
Window Design and DevelopmentJiri Danihelka
 
Webová prezentace - case study - DHL Express (Slovakia)
Webová prezentace - case study - DHL Express (Slovakia)Webová prezentace - case study - DHL Express (Slovakia)
Webová prezentace - case study - DHL Express (Slovakia)Sun Marketing
 
SEO pohledem datového analytika
SEO pohledem datového analytikaSEO pohledem datového analytika
SEO pohledem datového analytikaTaste Medio
 
Hobby Developer 3.0: Tipy a triky pro web
Hobby Developer 3.0: Tipy a triky pro webHobby Developer 3.0: Tipy a triky pro web
Hobby Developer 3.0: Tipy a triky pro webTomáš Muchka
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptCtvrtkoncz
 
Jak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJakub Klapka
 
Michal Majer / I testování může být zábava
Michal Majer / I testování může být zábavaMichal Majer / I testování může být zábava
Michal Majer / I testování může být zábavaMichal Majer
 
Rizika použití WordPressu
Rizika použití WordPressuRizika použití WordPressu
Rizika použití WordPressuSUPERKODERS
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webůMichal Doležel
 
Výběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduVýběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduJan Kodera
 

Similar to Optimalizace rychlosti stránek (20)

Základy internetu
Základy internetuZáklady internetu
Základy internetu
 
Axure RP training
Axure RP trainingAxure RP training
Axure RP training
 
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPressTomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
 
Window Design and Development
Window Design and DevelopmentWindow Design and Development
Window Design and Development
 
Screen scraping se ScraperWiki (Jindřich Mynarz)
Screen scraping se ScraperWiki (Jindřich Mynarz)Screen scraping se ScraperWiki (Jindřich Mynarz)
Screen scraping se ScraperWiki (Jindřich Mynarz)
 
Webová prezentace - case study - DHL Express (Slovakia)
Webová prezentace - case study - DHL Express (Slovakia)Webová prezentace - case study - DHL Express (Slovakia)
Webová prezentace - case study - DHL Express (Slovakia)
 
SEO pohledem datového analytika
SEO pohledem datového analytikaSEO pohledem datového analytika
SEO pohledem datového analytika
 
TNPW2-2014-05
TNPW2-2014-05TNPW2-2014-05
TNPW2-2014-05
 
Hobby Developer 3.0: Tipy a triky pro web
Hobby Developer 3.0: Tipy a triky pro webHobby Developer 3.0: Tipy a triky pro web
Hobby Developer 3.0: Tipy a triky pro web
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 
Jak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginů
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
TNPW2-2014-03
TNPW2-2014-03TNPW2-2014-03
TNPW2-2014-03
 
Michal Majer / I testování může být zábava
Michal Majer / I testování může být zábavaMichal Majer / I testování může být zábava
Michal Majer / I testování může být zábava
 
Rizika použití WordPressu
Rizika použití WordPressuRizika použití WordPressu
Rizika použití WordPressu
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webů
 
TNPW2-2016-03
TNPW2-2016-03TNPW2-2016-03
TNPW2-2016-03
 
Výběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduVýběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí cloudu
 
CSAS_v06
CSAS_v06CSAS_v06
CSAS_v06
 

More from Keyup

Unity
UnityUnity
UnityKeyup
 
Google AdWords a Google AdSense vs. AdBlock.
Google AdWords a Google AdSense vs. AdBlock.Google AdWords a Google AdSense vs. AdBlock.
Google AdWords a Google AdSense vs. AdBlock.Keyup
 
WinJS
WinJSWinJS
WinJSKeyup
 
Redux+React
Redux+ReactRedux+React
Redux+ReactKeyup
 
Garbage Collection in Java
Garbage Collection in JavaGarbage Collection in Java
Garbage Collection in JavaKeyup
 
CSS flexbox
CSS flexboxCSS flexbox
CSS flexboxKeyup
 
Magento 2
Magento 2Magento 2
Magento 2Keyup
 
Silex
SilexSilex
SilexKeyup
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on railsKeyup
 
HHVM & Hack
HHVM & HackHHVM & Hack
HHVM & HackKeyup
 
Icinga2
Icinga2Icinga2
Icinga2Keyup
 
O auth2
O auth2O auth2
O auth2Keyup
 
Úvod do bezpečnosti na webu
Úvod do bezpečnosti na webuÚvod do bezpečnosti na webu
Úvod do bezpečnosti na webuKeyup
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScriptKeyup
 
Easymock
EasymockEasymock
EasymockKeyup
 
CSS 3
CSS 3CSS 3
CSS 3Keyup
 
Contract in Java
Contract in JavaContract in Java
Contract in JavaKeyup
 
Jenkins
JenkinsJenkins
JenkinsKeyup
 
JLint
JLintJLint
JLintKeyup
 
Angular js vs. Facebook react
Angular js vs. Facebook reactAngular js vs. Facebook react
Angular js vs. Facebook reactKeyup
 

More from Keyup (20)

Unity
UnityUnity
Unity
 
Google AdWords a Google AdSense vs. AdBlock.
Google AdWords a Google AdSense vs. AdBlock.Google AdWords a Google AdSense vs. AdBlock.
Google AdWords a Google AdSense vs. AdBlock.
 
WinJS
WinJSWinJS
WinJS
 
Redux+React
Redux+ReactRedux+React
Redux+React
 
Garbage Collection in Java
Garbage Collection in JavaGarbage Collection in Java
Garbage Collection in Java
 
CSS flexbox
CSS flexboxCSS flexbox
CSS flexbox
 
Magento 2
Magento 2Magento 2
Magento 2
 
Silex
SilexSilex
Silex
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
HHVM & Hack
HHVM & HackHHVM & Hack
HHVM & Hack
 
Icinga2
Icinga2Icinga2
Icinga2
 
O auth2
O auth2O auth2
O auth2
 
Úvod do bezpečnosti na webu
Úvod do bezpečnosti na webuÚvod do bezpečnosti na webu
Úvod do bezpečnosti na webu
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
Easymock
EasymockEasymock
Easymock
 
CSS 3
CSS 3CSS 3
CSS 3
 
Contract in Java
Contract in JavaContract in Java
Contract in Java
 
Jenkins
JenkinsJenkins
Jenkins
 
JLint
JLintJLint
JLint
 
Angular js vs. Facebook react
Angular js vs. Facebook reactAngular js vs. Facebook react
Angular js vs. Facebook react
 

Optimalizace rychlosti stránek

  • 2. Proč? • Uživatel aktivita na stránce, míra opuštění • Google hodnocení stránky, pozice • Klient předchozí dvě • Vývojář předchozí tři
  • 3. Kdy? • DNS resolving • Odesílání dat na server (POST) • Zpracování požadavku a generování odpovědi • Odesílání dat • Vykreslování • JS příp. donačítání (XHR, image lazy loading)
  • 4. Co? • Server • Databáze - SQL queries • Obrázky • Skripty v prohlížeči • HTML • CSS • Requesty na služby třetích stran (ze serveru i prohlížeče)
  • 5. Jak? • Server hlavičky, cookies, gzip • Databáze indexy, počet dotazů • Obrázky JPG vs. PNG, sprites, favicon, max. 800px • CSS a JS minifikovat, nepoužívat inline, nedůležité na konec HTML,
 frameworky jen, když je skutečně potřeba • HTML vyčistit a zmenšit DOM • CDN JS frameworks, CSS resets, fonts • Externí skripty tracking codes, like buttons, embedded iframes
  • 6. Nástroje • Váš prohlížeč
 Inspektor
 Chyby v konzoli
 Vodopádový model načítání (rychlost, velikost, XHR) • PageSpeed Insights 
 browser extension
 https://developers.google.com/speed/pagespeed/insights/ • GTMetrix
 YSlow + PageSpeed, PDF export, grades
 http://gtmetrix.com • SmushIt
 http://www.smushit.com
  • 7. Cache • Memcached, Varnish, APC
 • Browser cache
 • Local Storage (příp. IndexedDB)
  • 8. Mobile • Ještě důležitější rychlost i velikost stránky
 myslet na to, jaké to je při připojení přes EDGE,
 některé funkce uživatel na mobilu z logiky věci 
 nikdy dělat nebude, není proto potřeba mu je nabízet • Vynechat elementy, které nejsou vidět
 nikoli jen skrýt • Dát si pozor na velikost klikacích polí
 lze na ně tapnout prstem • Pozor na scroll lock
 najede se na google mapu a najednou
 nelze scrollovat stránku, protože 
 touch eventy odchytává mapa
  • 9. Shrnutí • Zmenšovat, zmenšovat, zmenšovat • Inline kód je fuj • Pokud to lze udělat v CSS, udělat to v CSS • Testovat na mobilu a tabletu bez wifi • Pokud něco děláte proto, že to je jediný způsob, jaký znáte, tak to děláte špatně