Les API Web Performance accèdent rapidement au statut de recommandation du W3C

Le groupe de travail Web Performance du W3C a récemment publié trois spécifications en tant que recommandations du W3C avec des implémentations complètes de tous les principaux éditeurs de navigateurs, permettant ainsi aux développeurs de mesurer avec précision les performances des applications Web et d'accélérer le Web. Au cours des trois dernières années, des sociétés telles que Microsoft, Google, Mozilla, Intel, Facebook et d'autres ont travaillé dans le sens de la standardisation des interfaces Navigation Timing, High Resolution Time et Page Visibility au sein du groupe de travail. L'adoption rapide de ces recommandations montre ce qu'il est possible de faire lorsque les principaux acteurs du secteur et la communauté des développeurs travaillent main dans la main à travers le W3C.

Pour accélérer le Web, les développeurs doivent être capables de mesurer avec précision les performances des applications Web et d'utiliser efficacement le matériel sous-jacent afin d'optimiser les performances de leurs applications. Pour résoudre ces problèmes, le groupe de travail Web Performance a travaillé sur 15 spécifications différentes. Le tableau ci-dessous indique le niveau de maturité de toutes les spécifications en cours de modification par le groupe de travail.

Spécification Editor’s Draft (proposition éditoriale) First Public Working Draft (première ébauche de travail publique) Last Call (dernier appel) Candidate Rec (recommandation candidate) Proposed Rec (recommandation proposée) Rec (recommandation)
Navigation Timing Septembre 2010 Octobre 2010 Janvier 2011 Mars 2011 Juillet 2012 Décembre 2012
Resource Timing Septembre 2010 Mai 2011 Août 2011 Mai 2012
User Timing Octobre 2010 Août 2011 Septembre 2011 Juillet 2012
Performance Timeline Juillet 2011 Août 2011 Septembre 2011 Juillet 2012
High Resolution Time Février 2012 Mars 2012 Mars 2012 Mai 2012 Octobre 2012 Décembre 2012
Page Visibility Avril 2011 Juin 2011 Juillet 2011 Juillet 2012 Février 2013 Mai 2013
Display Paint Notifications Mai 2011 Juin 2011 Février 2012
Navigation Timing L2 (NOUVEAU) Janvier 2013 Janvier 2013
Efficient Script Yielding Juin 2011
High Resolution Time L2 (NOUVEAU) Avril 2013
Beacon (NOUVEAU) Mars 2013
Priorité des ressources (NOUVEAU) Avril 2013
Navigation Error Logging (NOUVEAU) Avril 2013
Resource Error Logging (NOUVEAU) Avril 2013
Prerender (NOUVEAU)

Les spécifications Navigation Timing, Resource Timing, User Timing et Performance Timeline aident les développeurs à mesurer avec précision la navigation au sein du document, les ressources disponibles sur la page et les scripts développeur. Avant ces API, ces données n'étaient pas vraiment accessibles. La spécification Navigation Timing a été publiée sous forme de recommandation du W3C et tous les principaux éditeurs de navigateurs la prennent en charge. Les trois autres interfaces sont actuellement dans la phase « Candidate Recommendation » et en attente de deux implémentations complètes de la part des éditeurs de navigateurs. IE10 est actuellement le seul navigateur qui implémente toutes ces interfaces. D'autres éditeurs travaillent toutefois actuellement sur ces implémentations.

Pour permettre de mesurer ces statistiques de performances de la façon la plus précise possible, la spécification High Resolution Time permet aux développeurs de mesurer les opérations avec une précision inférieure à la milliseconde. Non seulement cette interface profite des mesures précises issues des statistiques de performances, mais en plus elle permet de mieux calculer la fréquence d'images et de synchroniser les animations et les séquences audio. Cette interface a été publiée en tant que recommandation du W3C et tous les principaux éditeurs de fournisseurs implémentent la méthode performance.now() définie dans la spécification.

L'API Page Visibility permet de déterminer par programmation l'état de visibilité actuel de la page. Les développeurs peuvent exploiter ces données pour prendre des décisions plus avisées sur le plan de la consommation des ressources, par exemple en réduisant l'activité lorsque la page se trouve dans un onglet en arrière-plan. Cette spécification a également été publiée en tant que recommandation du W3C et tous les principaux éditeurs de fournisseurs l'implémentent.

Les spécifications Timing Control for Script-Based Animations et Efficient Script Yielding aident les développeurs à écrire des applications Web plus efficaces sur le plan de la consommation des ressources processeur et de la consommation électrique. L'API requestAnimationFrame, issue de la spécification Timing Control for Script-Based Animations, permet de créer des animations JavaScript plus efficaces. Tous les principaux éditeurs de fournisseurs prennent en charge cette interface et le groupe de travail se consacre activement à la publication de cette spécification en tant que « Candidate Recommendation ». L'API setImmediate, issue de la spécification Efficient Script Yielding, permet aux développeurs de céder efficacement le flux de contrôle à l'agent utilisateur et de recevoir un rappel immédiat, afin d'exploiter de façon efficace les ressources processeur. IE10 est le premier navigateur à implémenter cette interface.

Cette année, le groupe de travail a également étudié des idées innovantes et la proposition éditoriale de ces idées est actuellement en cours de discussion au sein du groupe de travail. L'API Beacon est conçue pour aider les scripts à transférer de manière asynchrone les données sur un serveur Web sans bloquer l'événement de déchargement, ce qui peut avoir un impact négatif sur les performances perçues de la navigation suivante. L'API Resource Priorities permet aux développeurs Web de donner au navigateur des indications sur la priorité de téléchargement des ressources afin d'optimiser le temps de chargement des pages. En conséquence des spécifications de type Timing, les spécifications Navigation Error Logging et Resource Error Logging aident les développeurs à comprendre les erreurs et la disponibilité de leurs applications. La spécification Navigation Timing Level L2 renforce la prise en charge de High Resolution Time et de Performance Timeline dans la spécification Navigation Timing, et la spécification High Resolution Time L2 permet de prendre en charge le travail Web. Il ne s'agit que de quelques-unes des ébauches que le groupe de travail est actuellement en train de définir. De nouvelles ébauches sont à venir concernant la spécification de pré-rendu (Prerender) et d'autres domaines de diagnostic.

Le groupe de travail Web Performance du W3C montre bien à quelle vitesse les idées innovantes peuvent devenir des standards interopérables sur lesquels les développeurs peuvent s'appuyer au sein des navigateurs HTML5 modernes. Aux côtés de grands acteurs du secteur et de responsables de la communauté qui ont participé au groupe de travail, nous espérons continuer à progresser rapidement dans le domaine des normes interopérables afin que les développeurs puissent rendre le Web plus rapide.

Avec nos remerciements,
Jatinder Mann
Chef de projet Internet Explorer