Les API Web Performance accèdent rapidement au statut « Candidate Recommendation » du W3C

Nous avons le plaisir d'annoncer que trois nouvelles spécifications du Groupe de travail Web Performance du W3C viennent d'accéder au statut « Candidate Recommendation » (recommandation candidate). Pour rendre le Web plus rapide, il est indispensable de mesurer avec précision les performances des applications Web. Par ailleurs, les développeurs doivent pouvoir utiliser de façon efficace le matériel sous-jacent afin d'améliorer les performances de leurs applications. Au cours des deux dernières années, des sociétés telles que Microsoft, Google, Mozilla, Intel et Facebook ont travaillé dans cet objectif, dans le cadre du groupe de travail du W3C. Voilà un excellent exemple de 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.

Les spécifications Navigation Timing, Resource Timing, User Timing et Performance Timeline aident les développeurs à mesurer avec précision les performances de leurs applications Web. Les trois premières fournissent aux développeurs des informations liées à la navigation au sein du document, aux ressources disponibles sur la page et aux scripts développeur, respectivement. La spécification Performance Timeline définit une interface d'unification pour récupérer ces données de synchronisation. Avant l'apparition de ces API, les développeurs ne pouvaient pas mesurer avec précision les performances de leurs sites.

Pour permettre de mesurer ces statistiques de performances de la façon la plus précise possible, la spécification High Resolution Time définit une résolution d'horloge 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. Pour la première fois, les développeurs peuvent mesurer les opérations avec une précision inférieure à la milliseconde.

Les spécifications Page Visibility, 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 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. L'API requestAnimationFrame, issue de la spécification Timing control for script-based animations », permet de créer des animations JavaScript plus efficaces. Enfin, 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.

Pour permettre aux développeurs d'écrire du code une seule fois et de le faire fonctionner de façon interopérable dans tous les navigateurs, le groupe de travail a travaillé de façon assidue ces deux dernières années en vue de standardiser ces API. Le tableau ci-dessous indique le niveau de maturité de toutes les spécifications en cours de modification au sein du groupe de travail.

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

Tableau indiquant le statut des spécifications Web Performance du W3C

Ce mois-ci, la spécification Navigation Timing a été publiée en tant que Proposed Recommendation (PR, recommandation proposée). Cette étape de standardisation est la dernière étape d'un standard Web avant son passage en recommandation W3C officielle. Par ailleurs, cette interface a été largement adoptée dans les navigateurs et est désormais prise en charge depuis Internet Explorer 9, Chrome 6 et Firefox 7. Le groupe de travail a récemment commencé à incorporer les avis recueillis et à travailler sur Navigation Timing 2, la prochaine version de la spécification.

Ce mois-ci également, les spécifications User Timing, Performance Timeline et Page Visibility ont été publiées en tant que Candidate Recommendation (CR, recommandation candidate). Cette étape du processus de standardisation précède l'étape PR et indique que selon le W3C, cette spécification a fait l'objet d'un vaste examen et satisfait aux exigences techniques du groupe de travail. La spécification Resource Timing a été publiée sous forme de CR il y a seulement deux mois, aux côtés de la spécification High Resolution Time, qui est passée du statut Editor's Draft au statut CR en seulement trois mois.

Ces API montrent 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. Merci à tous les participants au groupe de travail Web Performance du W3C pour avoir contribué à la réalisation de ces API, ainsi qu'aux autres éditeurs de navigateurs pour avoir commencé à implémenter ces API, afin de progresser sur la voie de l'interopérabilité.

—Jatinder Mann, chef de projet, Performances d'IE