Skip to content

Latest commit

 

History

History
54 lines (36 loc) · 2.29 KB

BP_4020_fr.md

File metadata and controls

54 lines (36 loc) · 2.29 KB

Éviter les temps de blocages par des traitements JavaScript trop longs

Identifiants

GreenIT V2 V3 V4

Catégories

Cycle de vie Tiers Responsable
3. Réalisation (fabrication / développement) Utilisateur/Terminal Architecte Logiciel/Développeur

Indications

Degré de priorité Mise en oeuvre Impact écologique
4 3 4
Ressources Economisées
Processeur

Description

Un navigateur comporte un processus qui transforme le code en une page web. Il doit accomplir plusieurs tâches avant de pouvoir afficher la page :

  • l’analyse du script HTML ;
  • la construction de la structure et du contenu d’une page web (DOM) ;
  • l’exécution de son code CSS et JavaScript.

Or l'exécution du code JavaScript peut occuper les processeurs du terminal à plus de 90% ce qui bloque les autres traitements voir les interactions avec l'utilisateur. Mais surtout cela sollicite fortement le terminal, ce qui conduit à deux choses :

  • une consommation excessive qui impacte directement le cycle de recharge de la batterie ;
  • le blocage du thread principal, qui dégrade l'expérience utilisateur, et qui peut être corrélé à la puissance du processeur (notamment sur mobile).

Ces deux aspects peuvent mener à un renouvellement du terminal utilisateur à cause d'une obsolescence perçue.

Pour éviter cela, préférer découper vos JavaScript en petites tâches exécutées au moment requis et non pas avant.

Exemple

Le Total Blocking Time (TBT) mesure le temps total occupé par des « Long Tasks » (Tâches longues) durant l’activité principale du thread JavaScript. Une Long Task est un traitement qui dure plus de 50 ms et qui monopolise le navigateur web. Il faut s'assurer que le TBT soit en dessous des 200 ms. La mesure peut s'effectuer avec LightHouse ou Web Page Test.

Principe de validation

Le nombre ... est inférieur ou égal à
de tâches longues supérieures à 200 ms 0