Pour avoir une interface fluide :
Airbnb a réduit ses ombres de boîte pour améliorer les performances de défilement
Thomas Zilliox
Expert CSS freelance
Auteur de
Départ immédiat pour Flexbox
Vous ne devriez certainement pas utiliser Flexbox pour votre gabarit, pour des raisons de performances
Il ne faut pas faire de transformations sur des images SVG !
Ajouter will-change: transform
sur vos éléments en position: fixed
et ce sera plus rapide !
ou des recettes de grand-mères ?
Apprendre :
1- Comment fonctionne un navigateur
2- Comment tester par soi-même
1- layout : calcule la taille et la position de chaque noeud
Le layout est une étape bloquante.
2- paint : calcule chaque pixel pour chaque noeud
Les données sont alors chargées dans la carte graphique.
3- composition : affichage des pixels à l'écran
Une étape plutôt rapide !
Lors d'une transition sur width
, on déclenche un layout.
Ce sera difficile pour le navigateur !
Lors d'une transition sur transform
, c'est une composition.
Ce sera facile pour le navigateur !
La composition, c'est seulement 3 propriétés possibles :
1- opacity
2- transform
3- filter
Attraper les tous...
On peut identifier les layouts et les paints grâce aux Dev Tools.
Les outils pour les paints sont plus visuels !
ou non ?
C'est encore utile pour Chrome,
mais plus pour Firefox.
On peut faire des transformations sur les SVG,
mais pas sur un sous-élément.
Flexbox n'est pas lent,
mais c'était vrai de la première syntaxe.
Les ombres portées ne sont pas redessinées au défilement,
mais cette histoire était à propos des Chromebook.
Il faut tester et ne croire personne !
(même pas moi)
Des questions ?
@iamtzi
https://tzi.fr/slides/speed2018
https://tzi.fr/slides/speed2018.pdf