Chronomètre en ligne, gratuit

Chronomètre précis avec temps intermédiaires. Appuyez sur Espace pour démarrer/arrêter, sur L pour un temps intermédiaire.

00:00.00

Raccourcis clavier

Fonctionnalités

Comment ça marche

  1. Démarrez le chrono : cliquez sur Démarrer pour lancer le chronomètre, il mesure le temps écoulé à la milliseconde.
  2. Enregistrez des temps intermédiaires : appuyez sur « Temps interm. » pour enregistrer des splits sans arrêter le chrono principal.
  3. Arrêtez et réinitialisez : mettez en pause à tout moment, puis reprenez ou remettez à zéro. Les temps intermédiaires restent jusqu'à la réinitialisation.

Une brève histoire du chronomètre

Le chronographe mécanique, l'ancêtre de tout chronomètre moderne, a été inventé par Louis Moinet en 1816. Moinet a construit son « Compteur de Tierces » pour chronométrer le mouvement apparent des étoiles dans le ciel à des fins d'observation astronomique ; il pouvait mesurer au 1/60e de seconde, une précision extraordinaire pour l'époque. Le premier chronographe commercial suivra cinq ans plus tard : Nicolas Mathieu Rieussec a présenté son chronographe « à pointage d'encre » aux courses de chevaux du Champ de Mars à Paris le 1er septembre 1821, puis l'a breveté en 1822. Le design de Rieussec utilisait un minuscule réservoir d'encre à la pointe de l'aiguille de chronométrage ; appuyer sur le bouton au départ déposait un point d'encre à la position de départ, appuyer à l'arrêt déposait un second point, et la distance entre les points donnait le temps écoulé. Adolphe Nicole a breveté le chronographe à rattrapante (split-second) en 1844, permettant de mesurer simultanément deux temps splits, une innovation critique pour les courses où plusieurs concurrents terminaient à quelques secondes d'écart. Le Mikrograph de Heuer (1916) a apporté la précision du 1/100e de seconde aux chronographes mécaniques à temps pour les Jeux olympiques d'Anvers de 1920, où il a été utilisé comme chronométreur officiel. La révolution quartz est arrivée avec l'Astron de Seiko en décembre 1969 (la première montre-bracelet à quartz commerciale) ; au fil des années 1980, le G-Shock (1983) et la F-91W (1989) de Casio ont rendu les chronomètres à quartz bon marché, durables et omniprésents. Les horloges atomiques modernes comme la NIST-F1 (1999) et la NIST-F2 (2014) atteignent une précision d'environ une seconde sur 300 millions d'années, bien au-delà de ce dont une montre-bracelet a besoin, mais le standard contre lequel toute heure civile est calibrée.

Chronométrage en JavaScript, Date.now() vs performance.now() vs requestAnimationFrame

Les navigateurs exposent trois API différentes pour mesurer le temps, chacune avec des garanties différentes. Date.now() retourne les millisecondes Unix depuis le 1er janvier 1970, résolution à la milliseconde, mais l'horloge système peut sauter (changements manuels d'heure, corrections NTP, passages à l'heure d'été), ce qui la rend peu fiable pour mesurer un temps écoulé. performance.now() retourne le temps depuis le démarrage de la page, en millisecondes avec une précision fractionnaire sub-milliseconde ; elle est monotone (ne recule jamais, immune aux changements d'horloge système), ce qui est exactement ce dont un chronomètre a besoin. Après les divulgations Spectre/Meltdown début 2018, les navigateurs ont réduit la précision par défaut de performance.now() de sub-microseconde à 100 microsecondes (certains navigateurs jusqu'à 1 milliseconde) pour atténuer les attaques par canal auxiliaire temporel ; les pages cross-origin-isolated peuvent toujours obtenir une résolution de 5 microsecondes si le site opt-in via les en-têtes Cross-Origin-Opener-Policy et Cross-Origin-Embedder-Policy. Pour un chronomètre, la précision post-Spectre par défaut est plus que suffisante, les humains ne perçoivent pas de différences de timing plus fines qu'environ 50 ms dans un contexte UI. requestAnimationFrame n'est pas une horloge à proprement parler, c'est un callback que le navigateur déclenche une fois par rafraîchissement d'affichage (typiquement 60 fois par seconde sur un écran 60Hz, 120 sur un 120Hz). Pour une UI de chronomètre, requestAnimationFrame est ce qui pilote la mise à jour fluide de l'affichage ; le temps écoulé lui-même vient de performance.now(). Le modèle standard : capturer startTime = performance.now() au Start, puis à chaque frame d'animation calculer elapsed = performance.now() - startTime et re-render l'affichage.

Le problème du throttling d'onglet

Une source célèbre de bugs dans les chronomètres basés sur navigateur est le throttling de l'onglet en arrière-plan. Quand un onglet perd le focus (vous passez à un autre onglet ou fenêtre), les navigateurs réduisent la fréquence à laquelle setTimeout, setInterval et requestAnimationFrame callbacks sont déclenchés, typiquement bridé à 1 seconde entre appels indépendamment de l'intervalle demandé. Chrome 88 (janvier 2021) a introduit un mode « intensive throttling » encore plus agressif qui réduit à des intervalles de 1 minute après que l'onglet a été en arrière-plan 5 minutes ou plus, pour économiser la batterie sur les ordinateurs portables. Cela casse tout chronomètre qui incrémente un compteur à chaque intervalle, le compteur prend du retard. L'implémentation correcte de chronomètre, utilisée ici, est de calculer le temps écoulé comme performance.now() - startTime à chaque rendu plutôt que d'incrémenter un compteur à chaque intervalle, la différence entre deux timestamps est toujours exacte indépendamment de la fréquence du rendu. L'affichage paraîtra figé sur un onglet en arrière-plan (parce que le rendu n'est pas déclenché), mais quand vous revenez à l'onglet, le temps écoulé est correctement calculé et l'affichage saute à la bonne valeur. Pour un timing en arrière-plan véritablement précis, le modèle Web Worker (exécuter le timer dans un thread worker, qui est moins agressivement throttlé que le thread principal) est la solution standard ; le chronomètre de cet outil est focalisé sur l'avant-plan donc l'approche performance.now() de base suffit.

Temps au tour vs split, la distinction qui compte pour les officiels olympiques

Deux concepts liés mais distincts sont confondus dans le langage quotidien. Un temps au tour est la durée d'un seul tour, le temps écoulé depuis le marqueur de tour précédent. Un temps split est le cumul à un point de contrôle, le temps écoulé depuis le tout début. Dans un relais 4×400m, le temps au tour de chaque coureur est ce qu'il a personnellement couru ; les splits vous disent comment la position cumulée de l'équipe a évolué entre les passages de relais. Dans un marathon, les splits aux 5K vous disent l'allure du coureur à chaque point de contrôle, tandis que les intervalles tour par tour vous diraient sa constance d'allure. Les systèmes de chronométrage olympiques affichent les deux côte à côte. Ce chronomètre enregistre les deux : chaque entrée de tour montre l'intervalle de tour (ce tour seulement) dans une colonne et le cumul total (split depuis le départ) dans une autre, vous pouvez ainsi comparer constance ou progression absolue selon ce qui vous importe. Le bouton Tour enregistre le marqueur ; le presser plusieurs fois pendant une course produit une liste illimitée d'intervalles.

Cas d'usage courants

Bornes de précision honnêtes

Un chronomètre de navigateur est précis à environ 10 millisecondes en fonctionnement en avant-plan sur du matériel moderne, ok pour entraînements, cuisine, présentations, jeux en classe et sports récréatifs. Ce n'est pas un substitut à : la chronométrie d'athlétisme certifiée (qui utilise des caméras photo-finish et des systèmes de chronométrage électronique dédiés avec précision sub-milliseconde et pistes d'audit) ; le chronométrage par tour synchronisé GPS (sport automobile, cyclisme) ; les systèmes de chronométrage de course Bluetooth-pairés sans fil ; ou tout ce où le temps devient un enregistrement officiel régulé. La précision de chronométrage de la plateforme web a été délibérément réduite après Spectre/Meltdown pour atténuer les attaques par canal auxiliaire ; pour l'usage chronomètre c'est invisible (les humains ne perçoivent pas la différence) mais pour des mesures de benchmark à la microseconde vous avez besoin d'en-têtes cross-origin-isolated. Pour un timing de longue durée où l'onglet peut perdre le focus, attendez-vous à ce que l'affichage « gèle » sur les onglets en arrière-plan mais montre le temps écoulé correct quand vous revenez, le calcul utilise des deltas de timestamp, pas des intervalles accumulés.

Garder l'écran allumé, Wake Lock API

Les navigateurs assombrissent et finissent par éteindre automatiquement l'écran sur les appareils mobiles après une période d'inactivité, ce qui n'est pas utile quand vous utilisez le chronomètre pour chronométrer un entraînement et que l'écran s'éteint en pleine course. La W3C Screen Wake Lock API permet à une page web de demander que l'écran reste allumé pendant que la page est en cours d'utilisation, supportée dans Chrome depuis 84 (juillet 2020), Edge, Opera, et Safari depuis 16.4 (mars 2023), avec Firefox ajouté en 126 (mai 2024). Pour un chronomètre, le motif typique est d'acquérir le wake lock quand le timer démarre et de le relâcher quand le timer s'arrête ou que la page perd la visibilité ; cela empêche l'écran de s'éteindre pendant les longues courses sans outrepasser de façon permanente les réglages d'affichage de l'utilisateur. Les chronomètres mobile-first bénéficient substantiellement de l'intégration Wake Lock ; le cas d'usage avant-plan de cet outil en a rarement besoin, mais l'option vaut la peine d'être connue pour les chronomètres faits maison.

Fonctionnalités

Foire aux questions

Quelle est la précision du chronométrage ?

L'affichage se met à jour 10 fois par seconde (précision au centième de seconde) et le calcul sous-jacent utilise performance.now(), qui est monotone et précis à environ 100 microsecondes dans les navigateurs modernes (1 milliseconde sur certaines configurations après les atténuations Spectre/Meltdown). Pour les entraînements, la cuisine, les présentations et les sports récréatifs, c'est plus que suffisant, les humains ne perçoivent pas de différences de timing plus fines qu'environ 50 ms dans un contexte UI. Pas un substitut pour la chronométrie d'athlétisme régulée, le chronométrage motorsport synchronisé GPS, ou tout ce qui devient un enregistrement officiel.

Pourquoi l'affichage gèle-t-il quand je change d'onglet ?

Throttling d'onglet du navigateur. Quand un onglet perd le focus, les navigateurs réduisent la fréquence à laquelle requestAnimationFrame et les callbacks de timer sont déclenchés, typiquement bridé à 1 seconde entre appels, et Chrome 88+ (janvier 2021) réduit en plus à 1 minute après 5 minutes d'inactivité pour économiser la batterie. L'affichage ne peut pas se mettre à jour sans callback déclenché. La bonne nouvelle : le temps écoulé lui-même est calculé correctement parce que cet outil utilise des deltas de timestamp (performance.now() - startTime) plutôt que des intervalles accumulés, quand vous revenez à l'onglet, l'affichage saute au temps écoulé correct. Pour un timing en arrière-plan véritablement précis, un motif Web Worker est la solution standard.

Comment fonctionnent les temps au tour ?

Appuyer sur Tour enregistre deux valeurs : l'intervalle de tour (temps depuis le tour précédent, ou depuis le départ s'il s'agit du premier tour) et le cumul total (temps depuis le départ, aussi appelé un « split »). Les deux sont affichés côte à côte dans la table des tours. La distinction compte en athlétisme : l'intervalle de tour vous dit la constance d'allure par segment, le cumul total vous dit la progression absolue contre un temps cible. Appuyez sur Tour autant de fois que nécessaire ; il n'y a pas de limite.

Puis-je mettre en pause sans perdre le temps écoulé ?

Oui, Stop met en pause le timer à la valeur actuelle ; cliquez à nouveau Start pour reprendre où vous vous êtes arrêté. Reset efface tout (temps écoulé et tous les enregistrements de tour) et retourne à zéro. La table des tours persiste à travers les cycles arrêt-reprise pour que vous puissiez consulter et exporter les tours d'une session de chronométrage multi-segment.

Puis-je garder l'écran allumé pendant un long entraînement ?

Pour le chronométrage sportif de longue durée sur un téléphone, le comportement par défaut du navigateur est d'assombrir et finalement éteindre l'écran, ce qui n'est pas utile en plein entraînement. La W3C Screen Wake Lock API (Chrome 84+ juillet 2020, Safari 16.4+ mars 2023, Firefox 126+ mai 2024) permet à une page web de demander que l'écran reste allumé pendant l'utilisation. Ce chronomètre n'invoque pas actuellement le Wake Lock automatiquement, pour l'instant, le contournement est d'ajuster manuellement le délai d'extinction d'écran de votre téléphone, ou d'utiliser l'app de chronomètre native de l'appareil pour l'usage sportif de longue durée.

Mes données de chronométrage sont-elles envoyées quelque part ?

Non. Le chronomètre tourne entièrement dans votre navigateur. Vos données de chronométrage, heure de départ, temps au tour, valeur écoulée actuelle, ne traversent jamais le réseau. Vérifiez dans l'onglet Network de DevTools pendant que le chronomètre tourne, ou mettez la page hors ligne (mode avion) après chargement et le chronomètre fonctionne parfaitement. Utile pour tout contexte de chronométrage où la confidentialité importe : essais sportifs sur piste fermée, benchmarking de performance interne, etc.

Outils associés