Chronomètre
Appuyez sur Démarrer, et prenez des temps au tour pendant que le chrono tourne.
0:00,00
Espace démarre et arrête, L prend un tour, R remet à zéro.
Comment ça marche
Le chronomètre mesure avec l’horloge de mesure du navigateur, performance.now(), et ne compte pas les rafraîchissements de l’écran. Cette horloge ne change pas si l’on règle l’horloge de l’ordinateur, mais, sauf sous Windows, elle s’arrête pendant la mise en veille ; le temps de veille est donc ajouté d’après l’horloge ordinaire de l’ordinateur. Le temps reste juste même si l’onglet reste un moment en arrière-plan.
Le temps au tour est le temps depuis le tour précédent, le total le temps depuis le départ. À partir de deux tours, le plus rapide et le plus lent sont signalés.
Au clavier, la barre d’espace démarre et arrête, L prend un tour et R remet à zéro quand le chrono est arrêté.
Les centièmes indiquent ce que l’horloge a mesuré, mais l’appui d’une personne a un temps de réaction d’environ deux dixièmes de seconde. C’est pourquoi les courses sont chronométrées par cellules photoélectriques.
Comment l’outil mesure
Le chronomètre lit deux horloges, l’horloge de mesure du navigateur, performance.now(), et l’horloge ordinaire de l’ordinateur, Date.now(). À chaque lecture, le temps écoulé depuis la lecture précédente s’ajoute au temps déjà mesuré, y compris lors des mesures précédentes. La lecture a lieu à chaque image de l’écran, une fois par seconde ou aussi souvent que le navigateur le permet quand l’onglet est en arrière-plan, et aussitôt que l’onglet redevient visible. Les centièmes sont arrondis vers le bas : 65,437 secondes s’affichent 1:05,43. Au-delà d’une heure, les heures viennent en tête, comme dans 1:02:03,45.
Un tour enregistre le temps total au moment où vous appuyez, et le temps au tour est l’écart avec le tour précédent. Chaque temps est arrondi vers le bas séparément, si bien que les temps au tour affichés peuvent totaliser un centième de moins que le total. Avec des tours de 62,415 et 62,625 secondes, les temps au tour affichés sont 1:02,41 et 1:02,62, soit 2:05,03 ensemble, alors que le total affiche 2:05,04. Le plus rapide et le plus lent se décident sur les centièmes affichés. Si tous les tours affichent le même temps, aucun n’est signalé, et si plusieurs partagent le temps le plus rapide ou le plus lent, ils sont tous signalés.
L’horloge qui mesure
La spécification High Resolution Time du W3C décrit performance.now() comme une horloge monotone : elle ne recule jamais et ne peut pas être modifiée quand l’horloge du système est réglée. La spécification ajoute qu’un navigateur qui ralentit les minuteries d’un onglet en arrière-plan ne doit pas en affecter la précision. Mais selon MDN, elle ne continue d’avancer pendant la mise en veille de l’ordinateur que dans les navigateurs sous Windows. Dans Chrome, Firefox et Safari sur les autres systèmes, elle s’arrête pendant la veille, et le défaut est signalé aux trois. L’horloge ordinaire de l’ordinateur, Date.now(), compte la veille mais peut être réglée, par exemple lors d’une synchronisation avec un serveur de temps.
Le chronomètre compte donc chaque pas entre deux lectures avec performance.now(), sauf quand l’horloge de l’ordinateur a avancé de plus de deux secondes de plus que l’autre. L’horloge de mesure s’est alors arrêtée pendant que l’ordinateur dormait, et le pas est pris sur l’horloge de l’ordinateur. Une horloge retardée ne change donc jamais le temps, et une nuit en veille est comptée sur tous les systèmes. Une horloge avancée de plus de deux secondes pendant la mesure est en revanche comptée comme du temps écoulé, car la page web ne peut pas la distinguer d’une mise en veille.
Comparé au chronométrage des courses
Les règles de World Athletics arrondissent dans l’autre sens. En chronométrage manuel sur piste, un temps qui ne tombe pas sur un dixième est arrondi au dixième supérieur : 10,11 secondes deviennent 10,2. Avec la photo-finish, les temps des courses jusqu’au 10 000 mètres inclus sont arrondis au centième supérieur. Un temps de 65,437 secondes, que ce chronomètre affiche 1:05,43, serait donc enregistré 1:05,44 avec la photo-finish et 1:05,5 à la main. En chronométrage manuel, trois chronométreurs prennent le temps, et si les trois diffèrent, le temps du milieu est officiel.