Interactivité : comment améliorer votre “First Input Delay” (FID)

par | Nov 18, 2020 | Article, Expérience numérique, Performances des applications

Google a introduit la notion de “First Input Delay” (FID) en mai 2020 dans le cadre des métriques Web Core Vitals c’est-à-dire les métriques essentielles pour l’expérience utilisateur.

Boris Rogier

Boris Rogier

Co-founder

How to improve FID and interactivity

Voyons de plus près la définition du FID, comment il mesure l’interactivité sur votre plateforme web et comment l’améliorer.

Qu’est-ce que le “First Input Delay” (FID) ?

Le “First Input Delay” (FID) mesure la première impression de l’utilisateur sur l’interactivité et la réactivité de votre site. Il mesure le temps qui s’écoule entre le moment où un utilisateur interagit pour la première fois avec une page et le moment où le navigateur est en mesure de réagir à cette interaction, c’est-à-dire le moment où il peut commencer à exécuter les “event handlers” (ou gestionnaires d’événement) en réponse à cette interaction. L’interaction de l’utilisateur peut consister à cliquer sur un lien, à appuyer sur un bouton ou à utiliser un contrôle personnalisé fonctionnant en JavaScript.

Comment le “First Input Delay” (FID) suit-il l’interactivité ?

Lorsqu’ils écrivent du code qui répond à des événements, les développeurs supposent souvent que leur code s’exécute immédiatement (dès que l’événement se produit). Mais en tant qu’utilisateurs, nous avons tous souvent vécu l’expérience inverse : nous avons chargé une page Web sur notre téléphone, essayé d’interagir avec elle, puis nous nous sommes sentis frustrés lorsque rien ne s’est passé.

Suivi lorsque le fil d’exécution (thread) principal du navigateur ne peut pas répondre immédiatement

En général, le délai de saisie (aussi appelé latence de saisie) est dû au fait que le fil d’exécution principal du navigateur est occupé à faire autre chose et ne peut donc pas (encore) répondre à l’utilisateur.

Examinons la chronologie suivante d’un chargement typique de page web :

First Input Delay understand what it reveals on the way pages are loaded and become interactive for your users

La figure ci-dessus montre une page qui effectue quelques requêtes réseau pour des ressources (très probablement des fichiers CSS et JS). Une fois ces ressources téléchargées, elles sont traitées par le thread principal.

Il en résulte des périodes où le thread principal est temporairement occupé, ce qui est indiqué par les blocs de tâches de couleur beige.

Les tâches longues et leur impact sur l’interactivité

Dans l’exemple ci-dessous, nous pouvons voir quelques « tâches longues » dans les tâches du thread principal. Il s’agit de périodes d’exécution de JavaScript pendant lesquelles les utilisateurs peuvent trouver votre interface utilisateur (IU) peu réactive. Une tâche longue correspond à tout morceau de code qui bloque le thread principal pendant 50 millisecondes ou plus.
Lorsque la première interaction de l’utilisateur a lieu vers le début d’une telle tâche longue, il y a un retard dans la réponse du navigateur à cette action, comme le montre l’exemple suivant.

FID First Input Delay tracks how long tasks make your site less interactive

Comme l’entrée se produit alors que le navigateur est en train d’exécuter une tâche, il doit attendre que la tâche se termine avant de pouvoir répondre à l’entrée. Le temps qu’il doit attendre est la valeur FID de cet utilisateur sur cette page.
Veuillez noter que le FID ne suit que la toute première interaction de l’utilisateur.
Pour offrir une bonne expérience aux utilisateurs, les sites doivent viser un premier délai d’entrée inférieur à 100 millisecondes. Tout ce qui se situe entre 100 et 300 millisecondes doit être amélioré et vous pouvez considérer que tout ce qui est supérieur à cette valeur a une performance médiocre.

FID score should be less than 100 ms

Comment améliorer le FID (First Input Delay) ?

En résumé, la principale cause d’un mauvais FID est l’exécution lourde de JavaScript. L’optimisation de l’analyse, de la compilation et de l’exécution de JavaScript sur votre page Web réduira directement le FID.

Concrètement, vous pouvez y parvenir en suivant les bonnes pratiques :

  • Décomposez le code des tâches longues en tâches plus petites et asynchrones.
  • Optimisez votre page pour qu’elle soit prête à l’interaction (optimisez le chargement des scripts de première partie, minimiser la dépendance à l’égard des récupérations de données en cascade, minimiser la quantité de données devant être post-traitées du côté client, exploitez le chargement à la demande de code tiers, …).
  • Utilisez un script “web worker” qui permette d’exécuter JavaScript sur un thread d’arrière-plan.
  • Réduisez le temps d’exécution du JavaScript en retardant le JavaScript inutilisé et en minimisant les polyfills inutilisés.

En guise de suivi, nous vous recommandons de jeter un coup d’œil aux deux autres métriques Core Web Vitals :

 

Partager cette publication

Newsletter

Toutes nos dernières stories et informations sur la surveillance du réseau et l’expérience utilisateur directement dans votre boîte de réception.

Ressources

Kadiska fait maintenant partie de Netskope
This is default text for notification bar