optimalizace webových aplikací

44
Op#malizace webových aplikací Ondřej Mirtes @OndrejMirtes Vašek Purchart @VasekPurchart

Upload: vasekpurchart

Post on 29-Jun-2015

223 views

Category:

Technology


0 download

DESCRIPTION

Prezentace pro seminář Web Inkognito

TRANSCRIPT

Page 1: Optimalizace webových aplikací

Op#malizace  webových  aplikací

Ondřej  Mirtes @OndrejMirtes  Vašek  Purchart

@VasekPurchart  

Page 2: Optimalizace webových aplikací

Spojování  souborů

•  reset.css  •  layout.css  •  typography.css  •  naviga;on.css  •  bu=ons.css  •  forms.css  •  tables.css  •  editor.css  

all.css  

Page 3: Optimalizace webových aplikací

Minifikace #navigation  ul  {      font-­‐size:  24px;      line-­‐height:  40px;  }  #navigation  ul  li  {      padding:  0;  }  #navigation  ul  li  a  {      border:  0;      color:  #333;  }  #navigation  ul  li  a  .count  {      font-­‐size:  14px;      color:  #c41700;  }  

#navigation  ul{font-­‐size:  24px;line-­‐height:  40px;}#navigation  ul  li{padding:0;#navigation  ul  li  a{border:  0;color:  #333;}#navigation  ul  li  a  .count{font-­‐size:14px;color:  #c41700;}  #navigation  ul  li  a:hover  {color:#c41700;#navigation  ul  li  ul{padding:  0;font-­‐size:  18px;}#navigation  ul  li.active  >  a  {color:#c41700;#navigation  ul  li:before{display:  none;}select.submenu  {display:  none;}  

Page 4: Optimalizace webových aplikací

CSS  &  JavaScript  připojujte  externě

<html>  <head>          <style>                  #navigation  ul  {                          font-­‐size:  24px;                          line-­‐height:  40px;                  }                  #navigation  ul  li  {                          padding:  0;                  }                  ...          </style>  </head>  ...  

Page 5: Optimalizace webových aplikací

CSS  &  JavaScript  připojujte  externě

<head>    <link  rel="stylesheet"          type="text/css"  

                   href="all.css">  </head>  

Page 6: Optimalizace webových aplikací

CSS  &  JavaScript  připojujte  externě

<html>  <body>          <script>                $('#container')                        .click(function(e)  {                              //  ...                });          </script>  </body>  ...  

Page 7: Optimalizace webových aplikací

CSS  &  JavaScript  připojujte  externě

<script  src="all.js"></script>  

Page 8: Optimalizace webových aplikací

Kam  připojit  JavaScript?

•  Náročná  blokující  operace  •  Těsně  před  </body> •  Prohlížeč  dá  při  načítání  přednost  viditelným  prvkům  jako  jsou  obrázky  

Page 9: Optimalizace webových aplikací

CSS  sprites

Page 10: Optimalizace webových aplikací

CSS  sprites

.question-­‐mark-­‐icon  {            width:  15px;          height:  19px;          background-­‐image:  

     url(sprites.png);          background-­‐position:  

     -­‐103px  -­‐172px;    }  

Page 11: Optimalizace webových aplikací

Obrázky  s  data  URI

•  Zakódování  obrázku  do  řetězce  •  V  Internet  Exploreru  s  problémy    

background-­‐image:  url(data:image/png;base64,iVBORw0KGgoAAAA...);  

Page 12: Optimalizace webových aplikací

Opakující  se  pozadí

Page 13: Optimalizace webových aplikací

Opakující  se  pozadí

Page 14: Optimalizace webových aplikací

JPEG

Page 15: Optimalizace webových aplikací

PNG

•  Bezeztrátová  komprese  •  Vhodný  pro  ikony  a  webdesign  •  U  fotografií  příliš  narůstá  velikost  

Page 16: Optimalizace webových aplikací

Vektorová  grafika

•  CSS3  –  kulaté  rohy,  barevné  přechody,  sZny  •  SVG  –  obrázky  zapsané  v  XML  •  Sady  ikon  jako  speciální  fonty  – Font  Awesome  

Page 17: Optimalizace webových aplikací

Vektorová  grafika

Page 18: Optimalizace webových aplikací

Doporučení  k  obrázkům

•  V  HTML  by  měly  mít  uvedené  rozměry  •  Zabrání  se  nechtěným  skokům  při  načítání  

<img  src="image.jpg"  width="150"  height="100">  

Page 19: Optimalizace webových aplikací

Doporučení  k  obrázkům

•  Barva  pozadí  by  měla  odpovídat  grafice,  která  se  přes  něj  načte  

Page 20: Optimalizace webových aplikací

Content  Delivery  Network  (CDN)

•  Určitě  využijete  pro  načtení  frameworků  •  Pozor  na  práci  off-­‐line  •  Pro  vlastní  sta;cké  soubory  – Amazon  S3,  CloudFront  – Velcí  hráči  si  budují  vlastní  CDN  

•  Max.  2-­‐6  souběžných  požadavků  na  doménu  – Řeší  se  rozložením  na  více  subdomén  

Page 21: Optimalizace webových aplikací

Obsluha  sta#ckých  souborů  přes  PHP

•  Jen  při  potřebě  zabezpečení  souborů  pro  přihlášené  uživatele  

•  Spouštění  aplikace  je  náročné  a  prodlužuje  odezvu  

•  Server  za  nás  implementuje  např.  navazování  stahování  

 

☠  

Page 22: Optimalizace webových aplikací

Průběh  načtení  stránky

Page 23: Optimalizace webových aplikací

F12  tools

•  Firefox  –  Firebug  (addon)  

Page 24: Optimalizace webových aplikací

F12  tools

•  Chrome  

Page 25: Optimalizace webových aplikací

Komunikace  se  serverem

Page 26: Optimalizace webových aplikací

Last-­‐Modified,  If-­‐Modified-­‐Since

•  První  dotaz  Response:  Last-­‐Modified:  Fri,  3  May  2013  12:00:00  GMT  

Page 27: Optimalizace webových aplikací

Last-­‐Modified,  If-­‐Modified-­‐Since

•  První  dotaz  Response:  Last-­‐Modified:  Fri,  3  May  2013  12:00:00  GMT    

•  další  dotazy  Request:  If-­‐Modified-­‐Since:  Fri,  3  May  2013  12:00:00  GMT    

•  304  Not  Modified  

Page 28: Optimalizace webových aplikací

ETag,  If-­‐None-­‐Match

•  První  dotaz  Response:  ETag:  "686897696a7c876b7e  "  

Page 29: Optimalizace webových aplikací

ETag,  If-­‐None-­‐Match

•  První  dotaz  Response:  ETag:  "686897696a7c876b7e  "    

•  další  dotazy  Request:  If-­‐None-­‐Match:  "686897696a7c876b7e  "    

•  304  Not  Modified  

Page 30: Optimalizace webových aplikací

Expires

•  První  dotaz:  Response:    Expires:  Mon,  3  Jun  2013  12:00:00  GMT  

Page 31: Optimalizace webových aplikací

Expires

•  První  dotaz:  Response:    Expires:  Mon,  3  Jun  2013  12:00:00  GMT    

•  další  dotazy  Nic,  pokud  neexpirovalo  

Page 32: Optimalizace webových aplikací

Cache-­‐Control:  max-­‐age

•  První  dotaz:  Response:    Cache-­‐Control:  max-­‐age=2678400  

Page 33: Optimalizace webových aplikací

Vyhnue  se  cachování

•  Cache-­‐Control:  no-­‐cache  •  staré  Expires  

Page 34: Optimalizace webových aplikací

gzip  komprese

•  Pro  HTML,  CSS,  JavaScript  •  V  .htaccess:    <IfModule  mod_deflate.c>  

 AddOutputFilterByType  DEFLATE  text/html  text/plain  text/xml  text/css  application/x-­‐javascript  text/javascript  application/javascript  application/json  </IfModule>  

Page 35: Optimalizace webových aplikací

Chrome  Audit

Page 36: Optimalizace webových aplikací

Ukládání  dat  u  uživatele

Page 37: Optimalizace webových aplikací

Applica#on  Cache

Page 38: Optimalizace webových aplikací

Web(local)  storage

Page 39: Optimalizace webových aplikací

Web  SQL

Page 40: Optimalizace webových aplikací

IndexedDB

Page 41: Optimalizace webových aplikací

Dynamické  načítání  obsahu

Page 42: Optimalizace webových aplikací

Vizuální  zrychlení

Page 43: Optimalizace webových aplikací

Server

•  Návrh  aplikace  •  Volba  frameworků  •  Nastavení  a  volba  serveru  •  Op;malizace  aplikačního  kódu  •  Opcode  cache  •  Cachování  dat  

Page 44: Optimalizace webových aplikací

Databáze

•  Databázové  indexy  •  Pozor  na  počet  dotazů  •  Stahovat  jen  potřebná  data