Jean-Pierre VINCENT Consultant indépendant



Documents pareils
Performance Front-End

PROGRAMME DE LA 1ERE JOURNEE DE FORMATION : QUALITE WEB ET REFERENCEMENT NATUREL

Qualité web : les bonnes pratiques front-end

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

Les Content Delivery Network (CDN)

IPHONE BANNIÈRE CLASSIQUE DIMENSIONS. Standard : 320 x 53 (portrait) 20Ko Jpeg/Gif/Png. HD : 640 x 106 (portrait) 20Ko Jpeg/Gif/Png DESCRIPTION

Echosgraphik. Ce document sert uniquement à vous donner une vision sur ma manière de travailler et d appréhender un projet

Optimisation de son site web. v1 23/05/2014

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Spétechs Mobile. D e r n i è r e m i s e à j o u r : a o û t 2014

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Savoir- Faire Offres mé1ers Offres technologiques

Devenez un véritable développeur web en 3 mois!

Spétechs Mobile. Octobre 2013

+33 (0) Sarl ISB Altipolis2 av. Du Général Barbot Briancon - France

Pierre-Louis Théron Nikolay Rodionov Axel Delmas

SPIP. Gestion de la performance dans SPIP. Préoccupa)on historique

Optimiser les s marketing Les points essentiels

Livret 1 Poste de travail de l utilisateur :

AngularJS pour une application d'entreprise

WordPress, thèmes et plugins : mode d'emploi


K-Portal et K-Sup 5.1 des nouveautés. Détails

Les bonnes pratiques. de l hébergement d un CMS

Programmation Web. Madalina Croitoru IUT Montpellier

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Création de maquette web

Spétechs Mobile. D e r n i è r e m i s e à j o u r : s e p t e m b r e

Découverte d aesecure. Par Christophe Avonture, développeur d aesecure

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Formation : WEbMaster

Industrialiser la gestion des fichiers multimédia. Aurélien Navarre

Performance, rendement Vs Evolutivité

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Ajax, RIA et HTML Prise en charge d Ajax

Catalogue Formations Jalios

SPECIFICITES TECHNIQUES DES FORMATS PUBLICITAIRES

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Créer et animer une boutique en ligne avec Wordpress (environnement PC et MAC)

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Audit SEO. I / Les Tranquilles d Oléron

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Support Google Analytics - 1 / 22 -

Guide d implémentation. Réussir l intégration de Systempay

FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement

Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

Mobilité Comment Drupal peut-il nous aider? Jean-Baptiste Guerraz - jbguerraz@gmail.com

Les applications mobiles dédiées au commerce de proximité Intervenant : Julien Hatton (Buzznative) et Khalid Sadiki (Hithik et Ecotravel)

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Guide de réalisation d une campagne marketing

Académie Google AdWords

Spécifications Techniques - Tablettes

Pack Fifty+ Normes Techniques 2013

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Devis pour la création de votre site Internet

Joomla! Création et administration d'un site web - Version numérique

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 12/09/2008. AUTEUR : Equipe technique Syfadis

Mozilla Firefox 3.5. Google Chrome 3.0 LES NAVIGATEURS WEB. (pour Windows) Opéra 10. Internet Explorer 8. Safari 4.0

Google AdWords : le Guide complet Optimisez vos campagnes pour gagner plus!

demander pourquoi mon site n'apparaît pas sur google ou pourquoi mon site n'est pas référencé par les moteurs de recherche?

Programme de la formation en référencement LYON/PARIS 2015

Piwik L'alternative Open Source en web analytique - Version numérique

JoomSession Lyon «SuperHeroes»

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Exemple de charte d intégration web

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

SYSTÈMES D INFORMATIONS

Le serveur HTTPd WASD. Jean-François Piéronne

Petite définition : Présentation :

Blogging et sites de contenu. Comment créer un site de contenu et l'animer

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Google Tag Manager. «Vous ne verrez plus l'analytics de la même manière» par Ronan CHARDONNEAU

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

septembre 2014 stratégies marketing les dessous de la performance web Réduire les temps de chargement : comment et pourquoi?

Formation Découverte du Web

JAB, une backdoor pour réseau Win32 inconnu

Dailymotion: La performance dans le cloud

Comité départemental du tourisme de Haute Bretagne Ille et Vilaine

Recommandations techniques

Suite Jedox La Business-Driven Intelligence avec Jedox

[CATALOGUE DE FORMATIONS 2013/2014]

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

4D Web 2.0 Pack DATA LIVES HERE. TM. Internet Riche et Solutions Mobiles en toute simplicité. 4D Ajax Framework 4D Ajax for Dreamweaver 4D for Flex

Diffuser un contenu sur Internet : notions de base... 13

Wildix Web API. Guide Rapide

Comment mettre en ligne un site WordPress local

Bureautique Initiation Excel-Powerpoint

Transcription:

Techniques d accélération des pages Web Jean-Pierre VINCENT Consultant indépendant @theystolemynick Braincracking.org

Bonjour, je m appelle Jean-Pierre 13 ans de Web PHP, JavaScript, HTML5, CSS Ex : startups, Yahoo!, houra.fr Expert frontend indépendant Veilleur : braincracking.org @theystolemynick

Performance Web? Les 10 14 commandements en 2006 http://developer.yahoo.com/performance/rules.html

Soooo 2006

2006-2013 Meilleur environnement SPDY remplace HTTP IE 7 meurt ADSL pour tous 4G, Fibre! Nouveaux besoins Pages 1 Mo + Social, tracking, pubs JavaScript partout Mobile!

Passer des règles aux outils Règles Yahoo! Best Practices (35 règles) Google PageSpeed (31 règles) Test Opquast (41 règles) Jusqu'à 400+ pratiques Outils Analyse réseau Profiling Bonnes pratiques Monitoring RUM Intégration continue

Combien coûte une seconde?

Combien coûte une seconde? Tunnel d achat : 1s = -7% de conversion Tagman, 2012

Combien coûte une seconde? Vidéo : 1s = -6% de vue Akamai 2012

Combien coûte une seconde? e-commerce 1 s = - 50 % de conversion Walmart 2012

Combien coûte une seconde? Search Bing : 1 s = - 3 % de CA Yahoo! : 1 s = + 10 % de rebond Études Bing et Google Velocity 2009 : http://velocityconf.com/velocity2009/public/schedule/detail/8523

Combien coûte une seconde? Mobile 1 s = -10% de pages vues Après 4 s : 60% d'abandon / http://www.themediabriefing.com/article/2012-10-02/speed-is-a-feature-why-a-slow-mobile-web-experience-means-lost-revenue http://www.strangeloopnetworks.com/resources/infographics/2012-state-of-mobile-ecommerce-performance/poster

Chantier Webperf Comment ne pas rater un chantier Webperf?

Chantier Webperf Fixer des objectifs Mesurer pour l'utilisateur Coder! Surveiller

Pourquoi la performance? $$ Qualité perçue Ergonomie Réponse à un besoin Métriques : Accès fonctionnalité premier rendu

Objectifs Interactivité avec la fonctionnalité <5s

Mesurer En JavaScript Google Analytics «User Timing» Boomerang, autres outils de RUM

Objectifs Interactivité avec la fonctionnalité <5s Premier rendu <2s

Mesurer WebPageTest Dynatrace Services payants

Le chemin critique Trouver le chemin critique Chemin critique 1er rendu

Agir Agir sur le chemin critique

Le chemin critique Côté client Ressources bloquantes : Redirections CSS Polices JS

Le chemin critique Redirections Limiter à 1 max Jamais côté client Surtout sur mobile

Le chemin critique CSS Concaténation (2 fichiers max) Minification Inline?

Le chemin critique Polices Les supprimer Les valider : poids, utilisée, compatible (Chrome XP) Chargement asynchrone

Inclure JavaScript Le choix des armes <script src> en haut <script src> en bas Inline defer Asynchrone

Inclure JavaScript <script src> en bas Si : Page légère Gestion des dépendances Pas de document.write() Pas de ios

Inclure JavaScript <script defer> Retardé par le onload

Inclure JavaScript Javascript asynchrone Conditions : Chargeur mis inline Gestion d'une file de téléchargement Remplacer les dépendances inline par des callback Découpe par module Téléchargement dépriorisé Au top: concaténation + module + asynchrone LabJS, requirejs

Inclure JavaScript <script src> en haut Si : petit concaténé sans concurrence Et : HTML + CSS + JS + Fonts < 6 requêtes

Inclure JavaScript Le choix se fera sur : Contraintes de la page Maturité de l'équipe

Objectifs Interactivité avec la fonctionnalité <5s Premier rendu <2s Réponse HTML <1s

Mesurer Tous les outils du monde Et WebPageTest

Agir Moyens : Cache serveur Flush() Page dynamiques et XHR Parallélisation (Big Pipe de FB)

Pages statiques Cache serveur Fichiers plats Mécanismes des CMS memcache Varnish CDN Paramétrage du temps de cache Contenu personnalisé

Technique du Flush() Envoyer le <head> au plus tôt

Pages semi-dynamiques Inclusion des parties dynamiques Personnalisation : Server Side Include

Pages semi-dynamiques

Pages semi-dynamiques Cache sur les parties statiques Envoyer ASAP XHR ou SSI pour les parties dynamiques Ne pas oublier l'interface Référencement

Extrêmes Facebook Big Pipe

Pourquoi la performance? SEO 1 critère de référencement chez Google Métrique : temps «onload» Mesurée par les utilisateurs http://googlewebmastercentral.blogspot.fr/2010/04/using-site-speed-in-web-search-ranking.html

Objectifs Interactivité avec la fonctionnalité <5s Premier rendu <2s Réponse HTML <1s Chargement de la page < 20 s?

Mesurer Tous les outils du monde Et WebPageTest

Mesurer Window.onload() de 20 secondes? Facile avec la fibre!

Le site moyen 1,5 Mo 120 requêtes 12 domaines

Les utilisateurs Connexion réseau à cibler : ADSL Mobiles Débit 2,5 Mb/s 2,5 Mb/s Latence 110 ms 200 ms +25% de perte Navigateurs à cibler : IE 8 Safari ios Android 2.3.x et 4.x WebPageTest Monitor

Temps onload() Ressources gênantes : Images Iframe Objets flash / vidéo

Images Optimisations : Ne pas les charger! Charger à la demande Compression manuelle Compression automatique

Remplacer la décoration Caractères unicode Dégradés Coins arrondis Ombres sur texte et boîtes Rotation de texte Opacité http://ikwebdesigner.com/special-characters/

Chargement Just In Time Méthode de lazy-load : charger les images visibles https://github.com/fasterize/lazyload

Sprites Maintenance Outil : Sass + Compass

Limiter les requêtes Encodage en base64 <img src="data:image/png;base64,<?= base64_encode( file_get_contents( './image.p ng' ));?>"> IE < 8 : MHTML Performance de rendu

Compression manuelle Connaître les formats PNG toujours meilleur que GIF PNG : ultra efficace avec des aplats de couleur JPG : mauvais pour le texte si il est en couleurs Jamais de PNG entrelacé PNG8 alpha WebP : mal supporté

Compression automatique Ligne de commande pngquant PNGOUT pngnq-s9 OptiPNG Gifsicle Pngcrush jpegtran JpegOptim SVG : distribuer en gzip Jpegrescan Interface ImageAlpha (pngmini.com) PNGGauntlet ImageOptim

Pourquoi la performance? Un administrateur système heureux Serveurs tiers

SPOF Dépendances à des serveurs tiers qui peuvent bloquer le rendu Usual suspect : http://platform.twitter.com/widgets.js https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js http://html5shiv.googlecode.com/svn/trunk/html5.js

SPOF-O-Matic Teste la fragilité aux ralentissements des serveurs tiers démo

SPOF Surveiller : WebPagetest Fixer : chargements asynchrones

Gérer son cache

Gérer son cache «Vide ton cache» Sans cache : Phases de recette interne Environnements de développement Cache agressif : Cache utilisateur Chaîne de cache réseau

Gérer son cache Invalidation des caches longs Maîtrise totale des URL HTML CSS JS Processus de compilation URL rendues uniques par : Numéro de release Md5 du fichier Mise en cache long : Expires : +1 an Cache-control : public Vary : xxx X

Gérer son cache Le super cache API Application Cache 1 application = 1 pack de fichiers 1 fichier de règles 1 API de gestion du cache Surtout sur mobiles

Gérer son cache Surveiller : WebPageTest

Configuration serveur 1. Configuration du keep-alive : KeepAlive On KeepAliveTimeout 5 Timeout 10 2. Activer la compression

Outils : analyse yslow

Outils : analyse Google PageSpeed

Outils : analyse WebPageTest

Monitoring Gratuit Commercial WPT monitor ShowSlow Torbit Yottaa GTmetrix Dynatrace

Performance de rendu

Profilers front IE Developer tools

Profilers front Dynatrace AJAX

Rendu fluide Alléger le DOM Surveiller 2 métriques La profondeur max et moyenne ( < 12 ) Le nombre de nœuds (< 1500 ) Outil : DOM Monster, WPT Long et périlleux si fait après coup Sensibilisation des intégrateurs

Rendu fluide La technique du settimeout( 0 ) En cas de blocage de l'interface : «casser» les boucles toutes les 50 ms Y revenir lorsque le navigateur est libre

Rendu fluide - JavaScript Bonnes pratiques Peu de requêtes DOM Caching En dehors des boucles Manipulation du DOM par batch Application de classes VS $.css() Limiter la taille des requêtes $(doc.byid('monid')).find('> div.maclasse'); Privilégier document.queryselector() JavaScript lui même est rarement un problème

Résumé Performances Web moderne : Outils WebPageTest! Profilers Monitoring, process WPT Monitor, build, RUM Techniques : Travailler le chemin critique Chargements juste à temps Connaître ses utilisateurs, faire de la veille

S auto-former En anglais http://www.perfplanet.com/ http ://developer.yahoo.com/performan ce/rules.html https:// developers.google.com/speed/docs /best-practices/rules_intro http:// www.webpagetest.org/forums En français http ://checklists.opquast.com/webperf/ https://groups.google.com/forum/?fr omgroups#!forum/performance-web @webperf_fr et @WebperfParis https://github.com/edas/webperf-book http://braincracking.org

Questions? Viens jouer : braincracking.org @theystolemynick

Crédits http://www.flickr.com/photos/themonnie/2495892146 http://www.flickr.com/photos/76657755@n04/7214596024/in/photostream/ http://www.flickr.com/photos/johannes_wl/8364284798/sizes/l/in/photostream/