Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Initiation WebPerf : Comprendre et optimiser la vitesse d'affichage Front-End

Initiation WebPerf : Comprendre et optimiser la vitesse d'affichage Front-End

Conférence donnée à la Ferme du Web (en 2011).
Comprendre, Mesurer et améliorer les performances Web de son site.

kennydee

May 07, 2011
Tweet

More Decks by kennydee

Other Decks in Programming

Transcript

  1. Etats des lieux Perf Back-End }  15% du temps passé

    }  3% du temps passé Perf Front-End }  85% du temps passé }  97% du temps passé Source : http://www.webperformancetoday.com/ 2011/04/20/desktop-vs-mobile-web-page-load- speed/ Web Mobile
  2. Pourquoi ? } Référencement } Satisfaction internautes } Contenu important visible plus rapidement

    } Diminuer les coûts d'hébergement / BP } Bonnes pratiques de désign / intégration } QOS
  3. Crédibilité }  « Any pause before responding to a simple

    question "does this dress make me look big ?" qualifies the inevitable response "absolutely not" as less certain. » Source : http://radar.oreilly.com/2011/04/why- speed-matters.html
  4. Comment fonctionnent nos navigateurs ? } Latence (Round Trip Time) } Connexions

    simultanées par domaine } Fonctionnement CSS / JS } … Voir BrowserScope.org
  5. Onglet Réseau : •  Waterfall complet •  Filtres par type

    de fichier •  Détails des requêtes •  http://www.firebug.net Firebug (Plugin Firefox)
  6. Windows only Pas lié à un navigateur : capture le

    traffic web Waterfall Charts http://www.fiddler2.com/ Fiddler
  7. Dynatrace Ajax Windows uniquement (IE/FF) Très précis pour le javascript

    Beaucoup de possibilités Version premium payante http://ajax.dynatrace.com/
  8. Chrome Speed Tracer Sur la version de dév de Chrome

    Reflow/Repaint Très précis mais complexe Adapté aux applications « Ajax »
  9. WebPageTest.org •  La référence incontestable dans le domaine. •  Crée

    par @patmeenan (désormais chez Google) http://www.lafermeduweb.net/tutorial/web- page-test-auditez-les-performances-de-votre- site-web-42.html
  10. WebPageTest.org •  Waterfall charts très complet (et paramétrable) •  Graphique

    par connexion Http •  Multi Browser : •  IE (6/7/8/9) + Dynatrace, Chrome 11, Chrome Frame 11 IE 6 •  Génération de vidéo •  Comparaison visuelle et vidéo entre plusieurs tests •  Grand choix de location : Paris / Dulles / Londres / HongKong … •  Scripting (navigation / clic / formulaire …) •  Blocking : permet de bloquer la pub, les Js, des scripts tiers, des domaines etc … •  Résultâts ultra-complets (par type de ressources, par domaine) •  Screenshots des tests •  Intégration pagespeed, yslow et différent conseils pour optimiser la page testée
  11. Blaze.io Mobile •  Iphone 4.3 •  Android 2.2, 2.3 • 

    Vidéo + Waterfall … •  Accessible via l’onglet Mobile de WebPageTest •  http://www.blaze.io/mobile/
  12. ShowSlow •  Peut être installé sur son serveur •  Implémente

    PageSpeed / Yslow et Webpagetest •  Pratique pour l’automation (Selenium IDE / Selenium RC / Firebug / Netexport …) •  http://www.showslow.com
  13. Mesurer les performances Voir aussi : }  Pingdom, Yottaa,Gxmetric… }

     WebPageTest Monitoring }  ShowSlow + Automation (Selenium RC) + Firebug + NetExport }  PageSpeed Online }  …
  14. Images => CSS https://github.com/bluesmoon/ pngtocss Remplacer les images de dégradé

    (pngtocss) et les bords arrondis par des équivalents CSS 3
  15. Regroupement CSS et Js intelligent Regrouper les multiples Js et

    Css en fonction du rubriquage de votre site.
  16. Cache HTTP / Expires Définir une durée de cache pour

    chaque élément de vos sites : Ex : ExpiresByType dans la conf Apache http://httpd.apache.org/docs/2.0/mod/ mod_expires.html
  17. Javascript : Optimisation et blocage Utilisez FireBug / Speed Tracer

    / Dynatrace pour optimiser votre code Javascript. Eviter les scripts Js Inline autant que possible ou regroupez les en fin de page. Utilisez des sélecteurs efficaces. Evitez les balises <script> dans le <head>, et préférez les avant le </body>
  18. Javascript externe : Asynchrone Charger les scripts qui le permettent

    en Asynchrone afin de ne pas bloquer le chargement des autres éléments. var e = document.createElement('script’); e.async = true; e.src = document.location.protocol + '// connect.facebook.net/fr_FR/all.js’; document.getElementById('fb-root').appendChild(e);
  19. Optimisation et positionnement CSS Utilisez PageSpeed pour modifier les sélecteurs

    non optimisés. Réduisez la taille de vos feuilles de style au maximum.
  20. Compression Gzip / Keep-Alive Gzip permet de gagner 70% sur

    la taille des éléments de la page. Le keep-alive permet l’établissement de connexions permanentes.
  21. Compression CSS et Javascript Pour le JS : Closure Compiler,

    YUICompressor http://code.google.com/intl/fr-FR/closure/ compiler/ , http://developer.yahoo.com/yui/compressor/ Pour les CSS : Css Compressor (PHP) https://github.com/codenothing/css-compressor/
  22. Widgets ou scripts Tiers Attention à l’intégration des widgets Facebook,

    Twitter, ou tags Adsense & co … Lazyload / Cron … http://stevesouders.com/p3pc/
  23. Commentaires conditionnels IE Paralleliser les CSS sur IE en cas

    de commentaires conditionnels dans le <head> <!--[if IE]><![endif]--> => 0,2s gagnée sur le StartRender http://webforscher.wordpress.com/ 2010/05/20/ie-6-slowing-down-ie-8/
  24. Feuille de style Print Ajouter la CSS print dans la

    CSS globale avec : @media print { … }
  25. HTTP Archive : le standard Viewer : http://code.google.com/p/harviewer/ Format :

    http://groups.google.com/group/http-archive- specification Supporté par : http://groups.google.com/group/http-archive- specification/web/har-adopters?hl=en
  26. HTTP Archive : le site Statistiques diverses sur les performances

    Web récoltées via les mesures publiques WebPageTest http://www.httparchive.org
  27. Pour continuer } Nouvelle métrique : Above the Fold Time (AFT)

    sur WPT. } Google Analytics (mesures des performances) } Service d’optimization : Strangeloop / Yottaa / Blaze.io / CloudFlare / Torbit … } Audit de performances
  28. Conclusion/Thanks to }  Webperf Guru’s : Stoyan Stefanov / Steve

    Souders }  Webperf Fr : Eric Daspet @edasfr, Vincent Voyer @zeroload & many more }  Le Webperf Group Fr : https://groups.google.com/group/ performance-web?hl=fr }  #webperf sur Twitter }  Even Faster Websites (Livre) }  High Performance Websites (Livre) }  …