SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
Web mobile et 
Performances 
Jean-Pierre Vincent – BrainCracking 
@theystolemynick
Jean-pierre VINCENT - BrainCracking 
• Expertise technique 
– Applications Web (HTML5 / JS) 
– Performances ! 
• Formation 
– JavaScript 
– Performances 
• Veille : 
– @theystolemynick 
– braincracking.org
À une seconde près ? 
Temps de réaction Perception 
0 – 100 ms Instantané (wow) 
100 – 300 ms Ça rame 
300 – 1000 ms La machine travaille 
1 s+ Changement de contexte mental 
10 s+ Je reviendrais (ou pas)
À une demie seconde près ! 
Tests utilisateurs : perception de la marque tesco.com 
Site témoin 
• Facile à utiliser 
• Simple 
• Lent 
• Chargé 
• Mobile friendly 
• Rapide 
Latence de 500 ms 
• Lent 
• Basique 
• Navigation difficile 
• Ennuyant 
• Compliqué 
• frustrant
Combien coûte le temps ? 
• Etsy : 
– 1 image de 160K = + 12% de 
taux de rebond 
• DoubleClick 
– 1 redirection en moins = +12% 
de taux de clic 
• RadWare 
– 60% d’abandon après 4 
secondes de chargement 
• Wallmart 
– -50% de conversion par 
seconde 
• Akamai 
– -6% de vidéo vue par seconde 
• Google 
– Critère de Référencement
Où est le problème ? 
• Réseau mobile français (Akamai) : 
– 6 Mb/s en moyenne 
– 34 Mb/s en pointe 
• La 4G française (degrouptest) : 
– 21-32 Mb/s 
• 75% d’utilisation via le wifi (Étude Google)
Les contraintes externes 
• Latence 4G : 50-100 ms 
• Vraies situations de 
mobilité : need for speed 
• Utilisateur : un site avec 
moins de contenu doit se 
charger plus vite non ? 
• Saturation et variabilité 
des réseaux
Les contraintes des sites mobiles 
• Le poids des sites 
– +56% sur les dédiés mobile ! 
– 750 Ko en moyenne 
• Les fonctionnalités 
– Fonts, grosses images 
– Trackers, AB testing, pub 
• Le mauvais RWD 
– Retina© + IE6 + 5 
breakpoints 
– Mettez tout sur la HP
Forcément …
LE CHEMIN CRITIQUE
Le chemin critique
Les grands classiques 
• Grouper CSS / JS 
• Minifier 
• Compresser (lvl 9)
Les polices 
• Non critiques (icônes, variantes) : 
– Inclusion standard 
• Critiques (titres, corps) 
– Police de fallback, inclusion asynchrone 
– Négocier la suppression …
L’enfer c’est les autres 
• Boutons sociaux 
• Scripts (jQuery, 
bootstrap, boilerplate …) 
• Polices 
• Solutions : 
– Options asynchrones 
– Rapatriement 
– Pubs en iframe
LES 3 CACHES
« Il n’y a pas plus rapide qu’une requête qu’on ne fait pas »
Manage cache (or die trying) 
La seule bonne méthode : 
• Définir des temps de cache 
longs (1 mois - 1 an) 
• Invalidation par changement 
de l’URL d’appel
Cache manuel 
Les caches sur mobile ne sont pas fiables 
• Utiliser localStorage (voir google HP) 
– Stockage de plusieurs Mo 
– HTML, CSS, JS, images, données JSON
Le cache ultime 
http://bit.ly/demo-offline 
• HTML5 Application Cache 
• Apparition instantanée 
de l’interface 
• Équivalent de 
l’installation d’une 
d’application native 
• Gère la déconnexion !
LES IMAGES
« ça va plus vite sans images »
Remplacer les images 
• CSS3 : 
– Dégradés 
– Arrondis 
– rotations, 
– Opacités 
• Caractères unicodes : 
– ►★✓⇢ 
– ✎♥☎ 
– ♻⚠ 
– ☻☺⇨
Chargement juste à temps 
• Ne charge que les images visibles 
• Libére la connexion pour les ressources critiques 
• Ex: lequipe.fr 
– 30 images et 300Ko économisés 
• Librairie bullet-proof
Images embarquées 
• Technique de data:uri + encodage base 64 
• Images critiques encodées dans le HTML
Les formats d’image 
Optimiser les formats 
actuels 
• Gif < PNG < JPG 
• Des dizaines d’outils de 
compression auto 
• Nettoyage des EXIF 
• JPG progressif : NON 
Distribuer les remplaçants 
de JPG 
• WebP (Android Chrome) 
• JPG XR (Windows phone) 
• JPG 2000 (iOS Safari)
IMAGES ADAPTATIVES
Définir le problème 
• Taille d’images adaptée à la taille de viewport ? 
• Support des écrans haute résolution ? 
• Variation des formats d’image ? 
• Art direction ?
Une réponse compliquée à un problème compliqué 
• Format officiel final : <picture> 
• Librairie d’émulation officielle : picturefill 2.0
La technique improbable 
« grand JPG qualité nulle » 
http://bit.ly/jpg-0 (sur un écran à haute densité)
Les formats vectoriels 
• Polices icôniques 
• SVG
Technique « fait main » 
• Images d’interface critiques encodées en 
base64 
• Images de contenu critiques visibles en basse 
définition (<img src>) 
• Images de contenu critiques en haute définition 
(JS) 
• Images contenu secondaire en lazy-loading 
• Image d’interface secondaires en font / SVG / 
sprites
LES TECHNIQUES DISCUTABLES
SPDY / HTTP 2 
Réduit les dégâts d’un grand nombre de requêtes 
Support 
• Chrome (forcément), Firefox, iOS 8 
Limites 
• HTTPS only 
• Laisse ramer IE 8, iOS < 7, navigateur Android
Domain sharding 
Il faut arrêter maintenant hein 
• Résolution DNS couteuses 
• Saturation immédiate de la bande passante
JavaScript en bas de page 
• Ça ne sert à rien pour le site lambda 
– Ralentit l’affichage sur Safari iOS 
– Ralentit l’exécution partout
INTERFACES FLUIDES
Grandeur et décadence 
• Animations 
– Directement en CSS3 (généré si besoin) 
– Utiliser translate 
– Tenter requestAnimationFrame 
• Scroll de longues pages 
– Technique du recyclage d’objets 
• Décoration 
– Éviter CSS3 … (ombrages) 
• Calcul 
– Web Workers 
– L’increvable setTimeout( 0 )
Fluidité 
• Une seule règle : tester et profiler 
• Avoir de vrais téléphones 
• Utiliser les déboguages via USB : 
– Chrome Android 
– Safari iOS 
– Windows 
– Firefox OS
MÉTHODOLOGIE
Impliquer 
• Le mythe du développeur héro solitaire 
• La vitesse doit être prévue dans les specs 
– Google : « Speed is the #1 feature » 
• Exemple : 
– Pour 80% des utilisateurs 
– Premier rendu en moins de 2 secondes 
– Fonctionnalité principale en moins de 5 secondes 
– Navigations internes en moins de 2 secondes
Mesurer, avant action 
• La base : WebPageTest 
• Mesures utilisateurs 
– Google, de base 
– À enrichir avec des mesures liées au métier
Surveiller dans le temps 
• Compléments payants ou gratuits à WPT 
• Analytics 
– Google, de base 
– À enrichir avec des mesures liées au métier
Parce qu’il en faut une 
CONCLUSION
RWD ? Non : mobile first 
• Suivre les utilisateurs : 
– Déjà en multi-écrans 
– Commencent souvent par une navigation mobile 
– Parfois moyen unique d’accès au net 
• Bonus : accélération pour tout le monde 
– IE 8 
– marchés lointains 
– smartphones bas de gamme
Questions ? 
Jean-pierre Vincent – BrainCracking 
@theystolemynick 
Slides : http://bit.ly/perf-mobile

Weitere ähnliche Inhalte

Was ist angesagt?

La vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploitéLa vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploitéFasterize
 
Mesurer la performance : onload, pages
Mesurer la performance : onload, pagesMesurer la performance : onload, pages
Mesurer la performance : onload, pagesJean-Pierre Vincent
 
Node.js et MongoDB: Mongoose
Node.js et MongoDB: MongooseNode.js et MongoDB: Mongoose
Node.js et MongoDB: Mongoosejeromegn
 
Single Page Application: Enrichissez l'expérience utilisateur
Single Page Application: Enrichissez l'expérience utilisateurSingle Page Application: Enrichissez l'expérience utilisateur
Single Page Application: Enrichissez l'expérience utilisateurflorentpellet
 
Atelier WordPress - Freelance fair tour - La cordée Rennes
Atelier WordPress - Freelance fair tour - La cordée RennesAtelier WordPress - Freelance fair tour - La cordée Rennes
Atelier WordPress - Freelance fair tour - La cordée Renneswpalex
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB13p
 
Meetup Webperf : résumé des 3 dernières années
Meetup Webperf : résumé des 3 dernières annéesMeetup Webperf : résumé des 3 dernières années
Meetup Webperf : résumé des 3 dernières annéesJean-Pierre Vincent
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionMarc Boivin
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007Eric D.
 
Cloud Azure – Services de données et bonnes pratiques
Cloud Azure – Services de données et bonnes pratiquesCloud Azure – Services de données et bonnes pratiques
Cloud Azure – Services de données et bonnes pratiquesMicrosoft
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Eric D.
 
Créer et gérer un site internet seul c'est possible
Créer et gérer un site internet seul c'est possibleCréer et gérer un site internet seul c'est possible
Créer et gérer un site internet seul c'est possibleYoucef Kébaïli
 
Créer son site web avec WordPress
Créer son site web avec WordPressCréer son site web avec WordPress
Créer son site web avec WordPressAbel LIFAEFI MBULA
 
Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Francois Daoust
 
Introduction à la soirée webperf du 21 juillet 2010, Paris
Introduction à la soirée webperf du 21 juillet 2010, ParisIntroduction à la soirée webperf du 21 juillet 2010, Paris
Introduction à la soirée webperf du 21 juillet 2010, ParisEric D.
 
64 conneries que font les référenceurs avec WordPress
64 conneries que font les référenceurs avec WordPress64 conneries que font les référenceurs avec WordPress
64 conneries que font les référenceurs avec WordPressAurélien Denis
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005Eric D.
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalSkilld
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 

Was ist angesagt? (20)

La vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploitéLa vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploité
 
Mesurer la performance : onload, pages
Mesurer la performance : onload, pagesMesurer la performance : onload, pages
Mesurer la performance : onload, pages
 
Node.js et MongoDB: Mongoose
Node.js et MongoDB: MongooseNode.js et MongoDB: Mongoose
Node.js et MongoDB: Mongoose
 
Single Page Application: Enrichissez l'expérience utilisateur
Single Page Application: Enrichissez l'expérience utilisateurSingle Page Application: Enrichissez l'expérience utilisateur
Single Page Application: Enrichissez l'expérience utilisateur
 
Atelier WordPress - Freelance fair tour - La cordée Rennes
Atelier WordPress - Freelance fair tour - La cordée RennesAtelier WordPress - Freelance fair tour - La cordée Rennes
Atelier WordPress - Freelance fair tour - La cordée Rennes
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
 
Meetup Webperf : résumé des 3 dernières années
Meetup Webperf : résumé des 3 dernières annéesMeetup Webperf : résumé des 3 dernières années
Meetup Webperf : résumé des 3 dernières années
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en production
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
 
Cloud Azure – Services de données et bonnes pratiques
Cloud Azure – Services de données et bonnes pratiquesCloud Azure – Services de données et bonnes pratiques
Cloud Azure – Services de données et bonnes pratiques
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006
 
Créer et gérer un site internet seul c'est possible
Créer et gérer un site internet seul c'est possibleCréer et gérer un site internet seul c'est possible
Créer et gérer un site internet seul c'est possible
 
Créer son site web avec WordPress
Créer son site web avec WordPressCréer son site web avec WordPress
Créer son site web avec WordPress
 
Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?
 
Introduction à la soirée webperf du 21 juillet 2010, Paris
Introduction à la soirée webperf du 21 juillet 2010, ParisIntroduction à la soirée webperf du 21 juillet 2010, Paris
Introduction à la soirée webperf du 21 juillet 2010, Paris
 
64 conneries que font les référenceurs avec WordPress
64 conneries que font les référenceurs avec WordPress64 conneries que font les référenceurs avec WordPress
64 conneries que font les référenceurs avec WordPress
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances Drupal
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 

Andere mochten auch

Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleJean-Pierre Vincent
 
Conférence Open Data par où commencer ? Intervention J.M.Lazard Open datasoft
Conférence Open Data par où commencer ? Intervention J.M.Lazard Open datasoft Conférence Open Data par où commencer ? Intervention J.M.Lazard Open datasoft
Conférence Open Data par où commencer ? Intervention J.M.Lazard Open datasoft Aline Custodio
 
Référentiels de bonnes pratiques : industrialisons nos savoir-faire
Référentiels de bonnes pratiques : industrialisons nos savoir-faireRéférentiels de bonnes pratiques : industrialisons nos savoir-faire
Référentiels de bonnes pratiques : industrialisons nos savoir-faireTemesis
 
Bassem Asseh - présentation à la Fabrique du changement - mjs pdl sept 2016- ...
Bassem Asseh - présentation à la Fabrique du changement - mjs pdl sept 2016- ...Bassem Asseh - présentation à la Fabrique du changement - mjs pdl sept 2016- ...
Bassem Asseh - présentation à la Fabrique du changement - mjs pdl sept 2016- ...Bassem ASSEH
 
Les Performance de rendu sur mobile
Les Performance de rendu sur mobileLes Performance de rendu sur mobile
Les Performance de rendu sur mobileJean-Pierre Vincent
 
Webpagetest en 5 minutes - Sud Web 2011
Webpagetest en 5 minutes - Sud Web 2011Webpagetest en 5 minutes - Sud Web 2011
Webpagetest en 5 minutes - Sud Web 2011Eric D.
 
HTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantiqueHTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantiqueJean-Pierre Vincent
 
HTML5 maintenant partie 2 : APIs
HTML5 maintenant partie 2 : APIsHTML5 maintenant partie 2 : APIs
HTML5 maintenant partie 2 : APIsJean-Pierre Vincent
 
Practical web performance - Site Confidence Web Performance Seminar
Practical web performance - Site Confidence Web Performance SeminarPractical web performance - Site Confidence Web Performance Seminar
Practical web performance - Site Confidence Web Performance SeminarStephen Thair
 
Measuring Mobile Web Performance v2
Measuring Mobile Web Performance v2Measuring Mobile Web Performance v2
Measuring Mobile Web Performance v2Stephen Thair
 
Microsoft et l'Open Source
Microsoft et l'Open SourceMicrosoft et l'Open Source
Microsoft et l'Open Sourcedavrous
 
Barcamp Prestashop - Améliorer la disponibilité
Barcamp Prestashop - Améliorer la disponibilitéBarcamp Prestashop - Améliorer la disponibilité
Barcamp Prestashop - Améliorer la disponibilitéOxalide
 
Faire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au GuardianFaire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au GuardianKaelig Deloumeau-Prigent
 
Les outils de monitoring
Les outils de monitoringLes outils de monitoring
Les outils de monitoringYan Luong
 
BEM, vos CSS sous vitamines !
BEM, vos CSS sous vitamines !BEM, vos CSS sous vitamines !
BEM, vos CSS sous vitamines !Thomas ZILLIOX
 
Un peu de sécurité dans ce monde de Kiwi
Un peu de sécurité dans ce monde de KiwiUn peu de sécurité dans ce monde de Kiwi
Un peu de sécurité dans ce monde de KiwiLaurie-Anne Bourdain
 
Getting touchy - an introduction to touch events / Sud Web / Avignon 17.05.2013
Getting touchy - an introduction to touch events / Sud Web / Avignon 17.05.2013Getting touchy - an introduction to touch events / Sud Web / Avignon 17.05.2013
Getting touchy - an introduction to touch events / Sud Web / Avignon 17.05.2013Patrick Lauke
 

Andere mochten auch (20)

Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exemple
 
Conférence Open Data par où commencer ? Intervention J.M.Lazard Open datasoft
Conférence Open Data par où commencer ? Intervention J.M.Lazard Open datasoft Conférence Open Data par où commencer ? Intervention J.M.Lazard Open datasoft
Conférence Open Data par où commencer ? Intervention J.M.Lazard Open datasoft
 
Référentiels de bonnes pratiques : industrialisons nos savoir-faire
Référentiels de bonnes pratiques : industrialisons nos savoir-faireRéférentiels de bonnes pratiques : industrialisons nos savoir-faire
Référentiels de bonnes pratiques : industrialisons nos savoir-faire
 
Introduction à la webperf
Introduction à la webperfIntroduction à la webperf
Introduction à la webperf
 
Bassem Asseh - présentation à la Fabrique du changement - mjs pdl sept 2016- ...
Bassem Asseh - présentation à la Fabrique du changement - mjs pdl sept 2016- ...Bassem Asseh - présentation à la Fabrique du changement - mjs pdl sept 2016- ...
Bassem Asseh - présentation à la Fabrique du changement - mjs pdl sept 2016- ...
 
Les Performance de rendu sur mobile
Les Performance de rendu sur mobileLes Performance de rendu sur mobile
Les Performance de rendu sur mobile
 
Webpagetest en 5 minutes - Sud Web 2011
Webpagetest en 5 minutes - Sud Web 2011Webpagetest en 5 minutes - Sud Web 2011
Webpagetest en 5 minutes - Sud Web 2011
 
HTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantiqueHTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantique
 
Html5 now light
Html5 now lightHtml5 now light
Html5 now light
 
HTML5 maintenant partie 2 : APIs
HTML5 maintenant partie 2 : APIsHTML5 maintenant partie 2 : APIs
HTML5 maintenant partie 2 : APIs
 
Practical web performance - Site Confidence Web Performance Seminar
Practical web performance - Site Confidence Web Performance SeminarPractical web performance - Site Confidence Web Performance Seminar
Practical web performance - Site Confidence Web Performance Seminar
 
Measuring Mobile Web Performance v2
Measuring Mobile Web Performance v2Measuring Mobile Web Performance v2
Measuring Mobile Web Performance v2
 
Physical web
Physical webPhysical web
Physical web
 
Microsoft et l'Open Source
Microsoft et l'Open SourceMicrosoft et l'Open Source
Microsoft et l'Open Source
 
Barcamp Prestashop - Améliorer la disponibilité
Barcamp Prestashop - Améliorer la disponibilitéBarcamp Prestashop - Améliorer la disponibilité
Barcamp Prestashop - Améliorer la disponibilité
 
Faire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au GuardianFaire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au Guardian
 
Les outils de monitoring
Les outils de monitoringLes outils de monitoring
Les outils de monitoring
 
BEM, vos CSS sous vitamines !
BEM, vos CSS sous vitamines !BEM, vos CSS sous vitamines !
BEM, vos CSS sous vitamines !
 
Un peu de sécurité dans ce monde de Kiwi
Un peu de sécurité dans ce monde de KiwiUn peu de sécurité dans ce monde de Kiwi
Un peu de sécurité dans ce monde de Kiwi
 
Getting touchy - an introduction to touch events / Sud Web / Avignon 17.05.2013
Getting touchy - an introduction to touch events / Sud Web / Avignon 17.05.2013Getting touchy - an introduction to touch events / Sud Web / Avignon 17.05.2013
Getting touchy - an introduction to touch events / Sud Web / Avignon 17.05.2013
 

Ähnlich wie La performance sur mobile

Techniques d'accélération des pages web
Techniques d'accélération des pages webTechniques d'accélération des pages web
Techniques d'accélération des pages webJean-Pierre Vincent
 
Techniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwipartyTechniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwipartyJean-Pierre Vincent
 
Le SEO JavaScript démystifié
Le SEO JavaScript démystifiéLe SEO JavaScript démystifié
Le SEO JavaScript démystifiéAdrien Russo
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5davrous
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web MobileWilly Leloutre
 
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?Nicole Sullivan
 
Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008Association Paris-Web
 
Convention Medialibs : Raphaël Goetter (Introduction à la performance web)
Convention Medialibs : Raphaël Goetter (Introduction  à la performance web)Convention Medialibs : Raphaël Goetter (Introduction  à la performance web)
Convention Medialibs : Raphaël Goetter (Introduction à la performance web)Medialibs
 
Html5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGHtml5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGJUG Toulouse
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalSkilld
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Inclure du Javascript de manière performante
Inclure du Javascript de manière performanteInclure du Javascript de manière performante
Inclure du Javascript de manière performanteJean-Pierre Vincent
 
Trucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidTrucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidThierry-Dimitri Roy
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?Frédéric Harper
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidemaru.maru
 

Ähnlich wie La performance sur mobile (20)

Techniques d'accélération des pages web
Techniques d'accélération des pages webTechniques d'accélération des pages web
Techniques d'accélération des pages web
 
Quoi de neuf dans la webperf ?
Quoi de neuf dans la webperf ?Quoi de neuf dans la webperf ?
Quoi de neuf dans la webperf ?
 
Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
 
Techniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwipartyTechniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwiparty
 
Le SEO JavaScript démystifié
Le SEO JavaScript démystifiéLe SEO JavaScript démystifié
Le SEO JavaScript démystifié
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web Mobile
 
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?
 
Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008
 
Convention Medialibs : Raphaël Goetter (Introduction à la performance web)
Convention Medialibs : Raphaël Goetter (Introduction  à la performance web)Convention Medialibs : Raphaël Goetter (Introduction  à la performance web)
Convention Medialibs : Raphaël Goetter (Introduction à la performance web)
 
Les performances Web mobile
Les performances Web mobileLes performances Web mobile
Les performances Web mobile
 
Html5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGHtml5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUG
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances Drupal
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Inclure du Javascript de manière performante
Inclure du Javascript de manière performanteInclure du Javascript de manière performante
Inclure du Javascript de manière performante
 
Trucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidTrucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment Android
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
 
MGD Html5 pres fr
MGD Html5 pres frMGD Html5 pres fr
MGD Html5 pres fr
 
Drupal & Mobilité
Drupal & MobilitéDrupal & Mobilité
Drupal & Mobilité
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-side
 

Mehr von Jean-Pierre Vincent

Le monitoring de la performance front
Le monitoring de la performance frontLe monitoring de la performance front
Le monitoring de la performance frontJean-Pierre Vincent
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech daysJean-Pierre Vincent
 
Fondamentaux portée - contexte - function ms tech days
Fondamentaux   portée - contexte - function ms tech daysFondamentaux   portée - contexte - function ms tech days
Fondamentaux portée - contexte - function ms tech daysJean-Pierre Vincent
 
Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Jean-Pierre Vincent
 
Javascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJavascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJean-Pierre Vincent
 
Télés connectées et développement Web
Télés connectées et développement WebTélés connectées et développement Web
Télés connectées et développement WebJean-Pierre Vincent
 
HTML5 maintenant partie 3 : multimedia
HTML5 maintenant partie 3 : multimediaHTML5 maintenant partie 3 : multimedia
HTML5 maintenant partie 3 : multimediaJean-Pierre Vincent
 

Mehr von Jean-Pierre Vincent (8)

Le monitoring de la performance front
Le monitoring de la performance frontLe monitoring de la performance front
Le monitoring de la performance front
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech days
 
Fondamentaux portée - contexte - function ms tech days
Fondamentaux   portée - contexte - function ms tech daysFondamentaux   portée - contexte - function ms tech days
Fondamentaux portée - contexte - function ms tech days
 
Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010
 
Javascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJavascript : fondamentaux et OOP
Javascript : fondamentaux et OOP
 
Télés connectées et développement Web
Télés connectées et développement WebTélés connectées et développement Web
Télés connectées et développement Web
 
Html5 bonnes-pratiques
Html5 bonnes-pratiquesHtml5 bonnes-pratiques
Html5 bonnes-pratiques
 
HTML5 maintenant partie 3 : multimedia
HTML5 maintenant partie 3 : multimediaHTML5 maintenant partie 3 : multimedia
HTML5 maintenant partie 3 : multimedia
 

La performance sur mobile

  • 1. Web mobile et Performances Jean-Pierre Vincent – BrainCracking @theystolemynick
  • 2. Jean-pierre VINCENT - BrainCracking • Expertise technique – Applications Web (HTML5 / JS) – Performances ! • Formation – JavaScript – Performances • Veille : – @theystolemynick – braincracking.org
  • 3. À une seconde près ? Temps de réaction Perception 0 – 100 ms Instantané (wow) 100 – 300 ms Ça rame 300 – 1000 ms La machine travaille 1 s+ Changement de contexte mental 10 s+ Je reviendrais (ou pas)
  • 4. À une demie seconde près ! Tests utilisateurs : perception de la marque tesco.com Site témoin • Facile à utiliser • Simple • Lent • Chargé • Mobile friendly • Rapide Latence de 500 ms • Lent • Basique • Navigation difficile • Ennuyant • Compliqué • frustrant
  • 5. Combien coûte le temps ? • Etsy : – 1 image de 160K = + 12% de taux de rebond • DoubleClick – 1 redirection en moins = +12% de taux de clic • RadWare – 60% d’abandon après 4 secondes de chargement • Wallmart – -50% de conversion par seconde • Akamai – -6% de vidéo vue par seconde • Google – Critère de Référencement
  • 6. Où est le problème ? • Réseau mobile français (Akamai) : – 6 Mb/s en moyenne – 34 Mb/s en pointe • La 4G française (degrouptest) : – 21-32 Mb/s • 75% d’utilisation via le wifi (Étude Google)
  • 7. Les contraintes externes • Latence 4G : 50-100 ms • Vraies situations de mobilité : need for speed • Utilisateur : un site avec moins de contenu doit se charger plus vite non ? • Saturation et variabilité des réseaux
  • 8. Les contraintes des sites mobiles • Le poids des sites – +56% sur les dédiés mobile ! – 750 Ko en moyenne • Les fonctionnalités – Fonts, grosses images – Trackers, AB testing, pub • Le mauvais RWD – Retina© + IE6 + 5 breakpoints – Mettez tout sur la HP
  • 12. Les grands classiques • Grouper CSS / JS • Minifier • Compresser (lvl 9)
  • 13. Les polices • Non critiques (icônes, variantes) : – Inclusion standard • Critiques (titres, corps) – Police de fallback, inclusion asynchrone – Négocier la suppression …
  • 14. L’enfer c’est les autres • Boutons sociaux • Scripts (jQuery, bootstrap, boilerplate …) • Polices • Solutions : – Options asynchrones – Rapatriement – Pubs en iframe
  • 16. « Il n’y a pas plus rapide qu’une requête qu’on ne fait pas »
  • 17. Manage cache (or die trying) La seule bonne méthode : • Définir des temps de cache longs (1 mois - 1 an) • Invalidation par changement de l’URL d’appel
  • 18. Cache manuel Les caches sur mobile ne sont pas fiables • Utiliser localStorage (voir google HP) – Stockage de plusieurs Mo – HTML, CSS, JS, images, données JSON
  • 19. Le cache ultime http://bit.ly/demo-offline • HTML5 Application Cache • Apparition instantanée de l’interface • Équivalent de l’installation d’une d’application native • Gère la déconnexion !
  • 21. « ça va plus vite sans images »
  • 22. Remplacer les images • CSS3 : – Dégradés – Arrondis – rotations, – Opacités • Caractères unicodes : – ►★✓⇢ – ✎♥☎ – ♻⚠ – ☻☺⇨
  • 23. Chargement juste à temps • Ne charge que les images visibles • Libére la connexion pour les ressources critiques • Ex: lequipe.fr – 30 images et 300Ko économisés • Librairie bullet-proof
  • 24. Images embarquées • Technique de data:uri + encodage base 64 • Images critiques encodées dans le HTML
  • 25. Les formats d’image Optimiser les formats actuels • Gif < PNG < JPG • Des dizaines d’outils de compression auto • Nettoyage des EXIF • JPG progressif : NON Distribuer les remplaçants de JPG • WebP (Android Chrome) • JPG XR (Windows phone) • JPG 2000 (iOS Safari)
  • 27. Définir le problème • Taille d’images adaptée à la taille de viewport ? • Support des écrans haute résolution ? • Variation des formats d’image ? • Art direction ?
  • 28. Une réponse compliquée à un problème compliqué • Format officiel final : <picture> • Librairie d’émulation officielle : picturefill 2.0
  • 29. La technique improbable « grand JPG qualité nulle » http://bit.ly/jpg-0 (sur un écran à haute densité)
  • 30. Les formats vectoriels • Polices icôniques • SVG
  • 31. Technique « fait main » • Images d’interface critiques encodées en base64 • Images de contenu critiques visibles en basse définition (<img src>) • Images de contenu critiques en haute définition (JS) • Images contenu secondaire en lazy-loading • Image d’interface secondaires en font / SVG / sprites
  • 33. SPDY / HTTP 2 Réduit les dégâts d’un grand nombre de requêtes Support • Chrome (forcément), Firefox, iOS 8 Limites • HTTPS only • Laisse ramer IE 8, iOS < 7, navigateur Android
  • 34. Domain sharding Il faut arrêter maintenant hein • Résolution DNS couteuses • Saturation immédiate de la bande passante
  • 35. JavaScript en bas de page • Ça ne sert à rien pour le site lambda – Ralentit l’affichage sur Safari iOS – Ralentit l’exécution partout
  • 37. Grandeur et décadence • Animations – Directement en CSS3 (généré si besoin) – Utiliser translate – Tenter requestAnimationFrame • Scroll de longues pages – Technique du recyclage d’objets • Décoration – Éviter CSS3 … (ombrages) • Calcul – Web Workers – L’increvable setTimeout( 0 )
  • 38. Fluidité • Une seule règle : tester et profiler • Avoir de vrais téléphones • Utiliser les déboguages via USB : – Chrome Android – Safari iOS – Windows – Firefox OS
  • 40. Impliquer • Le mythe du développeur héro solitaire • La vitesse doit être prévue dans les specs – Google : « Speed is the #1 feature » • Exemple : – Pour 80% des utilisateurs – Premier rendu en moins de 2 secondes – Fonctionnalité principale en moins de 5 secondes – Navigations internes en moins de 2 secondes
  • 41. Mesurer, avant action • La base : WebPageTest • Mesures utilisateurs – Google, de base – À enrichir avec des mesures liées au métier
  • 42. Surveiller dans le temps • Compléments payants ou gratuits à WPT • Analytics – Google, de base – À enrichir avec des mesures liées au métier
  • 43. Parce qu’il en faut une CONCLUSION
  • 44. RWD ? Non : mobile first • Suivre les utilisateurs : – Déjà en multi-écrans – Commencent souvent par une navigation mobile – Parfois moyen unique d’accès au net • Bonus : accélération pour tout le monde – IE 8 – marchés lointains – smartphones bas de gamme
  • 45. Questions ? Jean-pierre Vincent – BrainCracking @theystolemynick Slides : http://bit.ly/perf-mobile

Hinweis der Redaktion

  1. L’angoisse de la page blanche
  2. 50% des sites oublie, 30% mettent des temps très courts Les devs n’aiment pas ça
  3. Penser à vérifier sur les vrais navigateurs / OS
  4. Fait par google et les autres. Ne pas abuser (pas de cache, coût de décodage et mise en mémoire)
  5. PNG 8 Alpha PNG : aplats de couleur. JPG : presque tout sauf aplats et texte
  6. « problème retina »
  7. SVG : gziper Généralement plus petits et de meilleure qualité
  8. Android 2.3 : impossible, il faut deviner
  9. Ex Youtube : passer de 3Mo à moins de 100Ko pour le premier rendu => ouverture aux pays émergents