Vos utilisateurs, votre consultant référencement et même votre ergonome devraient déjà vous poursuivre pour accélérer l'affichage de vos pages. Si ça n'est pas le cas, c'est à l'équipe front de l'introduire. Nous allons voir les techniques universelles dont disposent les développeurs Web ou les exploitants pour accélérer l'affichage des pages Web, y compris sur les mobiles. C'est surtout côté code front que se passe la course à l'affichage de pixel, mais nous discuterons également des choses à prendre en compte côté backend et machines. Nous passerons également en revue les arguments à avancer pour faire prendre conscience des enjeux de qualité, d'ergonomie et de finances associés à des sites rapides.
1. Techniques d’accélération des
pages Web
Jean-Pierre VINCENT
Consultant indépendant
Code / Développement
#WebPerf - @theystolemynick
Braincracking.org
2. • 5 10 13 ans de Web
• PHP, JavaScript, HTML5, CSS
• Ex :
– startups, Yahoo!, houra.fr
• Expert frontend indépendant
• Veilleur :
– braincracking.org
– @theystolemynick
Bonjour, je m’appelle Jean-Pierre
3. Les 10 14 35 commandements
http://developer.yahoo.com/performance/rules.html
Steve Souders, like a Boss
Performance Web ?
4. • Yahoo! Best Practices (35 règles)
• Google PageSpeed (31 règles)
• Test Opquast (41 règles)
• En vrai : 500+ pratiques
• Nouveaux navigateurs
• Nouveaux besoins
• Mobile
Comment faire le tri ?
5. • 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
Pourquoi la performance ?
11. Search
• Bing : 1 s = - 3 % de CA
• Yahoo! : 1 s = + 10 % de
rebond
Combien coûte une seconde ?
12. 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/
21. Sources : Akamai 2011 et 2012, Degrouptest, 60 millions de consommateurs, ARCEP
• Grand public français :
– IE 7 is dead !
– Arrivée via réseaux mobiles
– Connexions moyennes :
2. Utilisateurs
ADSL Mobiles
Débit 4, 8 Mb/s 2,5 Mb/s
Latence 95 ms 200 ms
22. • La moyenne n’est pas
représentative
• 25% des utilisateurs ont moins
de 2,5 Mb/s
< 1
Mb/s 1 - 2
Mb/s
2 - 3
Mb/s3 - 4
Mb/s
4 - 5
Mb/s
5-10
Mb/s
> 10
Mb/s
Répartition des débits
(ligne fixe)
2. Utilisateurs
23. • Connexion réseau à cibler :
• Navigateurs à cibler :
– IE 8
– Safari iOS
– Android 2.3.x et 4.x
2. Utilisateurs
ADSL Mobiles
Débit 2,5 Mb/s 2,5 Mb/s
Latence 110 ms 200 ms
+25% de perte
28. • Et pourtant :
– 50% des sites oublient
– 30% ont un TTL < 30 jours
Cache
29. • Sans cache :
– Phases de recette interne
– Environnements de
développement
• Cache agressif :
– Cache utilisateur
– Chaîne de cache réseau
« Vide ton cache »
30. • Serveur
– eTag: "xxxxxx"
Ou
– Last-Modified: DATE_W3C
• Serveur
– 200 OK
Ou
– 304 Not Modified
• Client
– If-None-Match: "xxxxxx"
Ou
– If-Modified-Since: DATE_W3C
Cache : invalidation standard
31. • Sert à des cas spéciaux
– Polling
– Revalidation de session
– Environnement de dév.
Cache : invalidation standard
• Génère autant de requêtes
32. • Maîtrise totale des URL
– HTML
– CSS
– JS
• Processus de compilation
• URL rendues uniques par :
– Numéro de release
– Md5 du fichier
Invalidation des caches longs
• Mise en cache long :
Expires : +1 an
Cache-control : public
Vary : xxx
33. API Application Cache
• 1 application = 1 pack de
fichiers
• 1 fichier de règles
• 1 API de gestion du cache
• Surtout sur mobiles
Le super cache
34. Sans débat : moins de requêtes
• La limite de HTTP : la latence
Au pire
• DNS
• + Ouverture TCP
• + Slow Start
• + 1 RTT mininum
= 4 X latence
= 400 ms
37. • Redirections :
– Limiter à 1 max
– Jamais côté client
– Surtout sur mobile
Déblayer le chemin critique
38. Génération de la page:
• Caches serveur
• Flush du head
Déblayer le chemin critique
39. Génération de la page:
• Caches serveur
• Flush du head
• Fonctionnalités longues :
XHR
Déblayer le chemin critique
40. Génération de la page:
• Caches serveur
• Flush du head
• Fonctionnalités longues : XHR
• Personnalisation :
Server Side Include
Déblayer le chemin critique