ToolActToolAct

Chronomètre en ligne

Chronomètre en ligne gratuit avec précision à la milliseconde et chronométrage par tours

00:00:00.000

Qu'est-ce qu'un Chronomètre en Ligne ?

Un chronomètre en ligne est un outil de chronométrage de précision qui mesure le temps écoulé depuis zéro, généralement avec une résolution à la milliseconde. Contrairement à un minuteur de compte à rebours, un chronomètre répond à « combien de temps cela a-t-il pris ? », ce qui le rend idéal pour l'entraînement sportif, les expériences de laboratoire, les présentations, la cuisine, les sprints de codage et toute activité où vous devez suivre une durée. Cet outil s'exécute entièrement dans votre navigateur en utilisant requestAnimationFrame pour des mises à jour fluides et performance.now() pour une mesure du temps monotone, restant ainsi précis même lorsque l'horloge système est ajustée. L'enregistrement des tours permet de capturer les temps intermédiaires avec mise en évidence du meilleur/pire tour, et toutes les données restent locales — rien n'est téléchargé.

Comment utiliser

Démarrage rapide

  1. Cliquez sur 'Démarrer' pour commencer — l'affichage montre heures:minutes:secondes.millisecondes
  2. Cliquez sur 'Tour' pour enregistrer un temps intermédiaire pendant que le chronomètre continue
  3. Cliquez sur 'Pause' pour figer l'affichage, puis 'Démarrer' pour reprendre
  4. Cliquez sur 'Réinitialiser' pour effacer le chronomètre et tous les enregistrements de tours

Conseils

  • Le chronomètre utilise requestAnimationFrame pour des mises à jour d'affichage d'environ 16ms et performance.now() pour un chronométrage précis.
  • Gardez l'onglet visible pour l'affichage le plus fluide. Les onglets en arrière-plan peuvent limiter les trames d'animation.
  • Les temps de tour sont codés par couleur : vert pour le tour le plus rapide, rouge pour le plus lent.

Cas d'utilisation

Entraînement sportif et fitnessChronométrez les tours de course, les intervalles de natation, les fractions de cyclisme ou les circuits de gym. Enregistrez chaque tour pour voir quels étaient les plus rapides ou les plus lents, vous aidant à gérer votre rythme.
Expériences de laboratoire et collecte de donnéesMesurez les temps de réaction, chronométrez les processus chimiques ou enregistrez les intervalles d'observation. L'affichage en millisecondes offre la précision nécessaire au chronométrage scientifique sans matériel spécialisé.
Présentations et prise de parole en publicChronométrez votre discours, présentation ou répétition de pitch. Utilisez les tours pour chronométrer les sections individuelles ou les diapositives, puis ajustez votre rythme.
Cuisine et pâtisserieSuivez combien de temps chaque étape prend réellement — de la préparation au dressage. L'enregistrement des tours vous permet de mesurer les phases individuelles tout en gardant l'horloge globale en marche.
Sprints de codage et productivitéChronométrez les sessions de codage, le débogage ou les blocs de travail style Pomodoro. Le chronomètre continue jusqu'à ce que vous l'arrêtiez, vous donnant une mesure honnête de la durée réelle d'une tâche.

Principe technique

Le moteur du chronomètre évite complètement le modèle setInterval sujet à la dérive. Au lieu de cela, il utilise requestAnimationFrame (rAF) pour les mises à jour d'affichage et performance.now() comme source de temps de référence. Lorsque l'utilisateur clique sur Démarrer, le moteur enregistre le timestamp performance.now() actuel comme startTime. À chaque trame d'animation, il calcule elapsed = accumulated + (performance.now() - startTime), où accumulated conserve le temps total écoulé avant la dernière pause. Ce modèle à deux variables (temps accumulé + delta d'exécution) gère correctement les cycles pause/reprise sans perte de précision inférieure à la milliseconde. performance.now() est choisi plutôt que Date.now() car il est monotone — il ne recule jamais en raison de corrections NTP, de changements manuels d'horloge ou de transitions d'heure d'été. Il offre également une résolution inférieure à la milliseconde (généralement une granularité de 5 µs dans les navigateurs modernes), ce qui en fait la bonne horloge pour le chronométrage de courte durée et de haute précision. Le rappel rAF est limité au taux de rafraîchissement de l'écran (généralement 60 Hz = ~16,67 ms, jusqu'à 120 Hz sur les écrans à haut taux de rafraîchissement), de sorte que la mise à jour visuelle est fluide mais n'est pas la la référence — le temps écoulé réel provient du calcul performance.now(), qui est continuellement correct. L'enregistrement des tours capture le elapsedMs actuel au moment où le bouton Tour est cliqué, en calculant la différence de fraction par rapport au total du tour précédent. Les tours les plus rapides et les plus lents sont déterminés en comparant toutes les différences de tour avec Math.min/Math.max, et l'affichage les met en évidence avec des styles vert et rouge respectivement. Tout l'état réside dans les hooks useState de React au sein du composant client, et aucune donnée n'est persistée ou transmise — le chronomètre est éphémère par conception, se réinitialisant complètement à la fermeture de la page ou à l'appui sur le bouton Réinitialiser.

  • performance.now() fournit des timestamps monotones de précision inférieure à la milliseconde — insensibles aux changements d'horloge système.
  • requestAnimationFrame pilote les mises à jour d'affichage au taux de rafraîchissement (60–120 Hz) pour un rendu fluide.
  • Le modèle temps accumulé + delta d'exécution gère pause/reprise sans perte de précision.
  • Les différences de tour sont calculées comme currentTotal - previousTotal pour un chronométrage fractionné précis.
  • Tous les calculs s'exécutent localement dans le navigateur ; aucun aller-retour serveur ni téléchargement de données.

Exemples

Piste d'athlétisme — fractions de 400m

Tour 1 -> 01:12.450  (+01:12.450)
Tour 2 -> 02:26.180  (+01:13.730)
Tour 3 -> 03:38.910  (+01:12.730)
Tour 4 -> 04:50.320  (+01:11.410  le plus rapide)

Répétition de présentation — chronométrage par diapositive

Intro      -> 00:45.200  (+00:45.200)
Problème   -> 02:10.850  (+01:25.650)
Solution   -> 04:35.120  (+02:24.270)
Démo       -> 07:10.430  (+02:35.310)
Conclusion -> 08:25.610  (+01:15.180)
Total : 8 min 25 s — sous l'objectif de 10 min

Entraînement HIIT — suivi d'intervalles

Manche 1  -> 00:30.150  (+00:30.150)
Repos 1  -> 00:45.320  (+00:15.170)
Manche 2  -> 01:15.480  (+00:30.160)
Repos 2  -> 01:30.510  (+00:15.030)
Manche 3  -> 02:00.670  (+00:30.160  le plus lent)
Manche 4  -> 02:30.520  (+00:29.850  le plus rapide)

Questions fréquentes

Quelle est la précision du chronomètre ?

Le chronomètre utilise performance.now() qui offre une précision inférieure à la milliseconde (généralement une granularité de 5 microsecondes). L'affichage se met à jour environ 60 fois par seconde via requestAnimationFrame, donc la mise à jour visuelle est à moins de 16ms de la valeur réelle. Pour la plupart des usages pratiques — sports, cuisine, présentations — c'est plus que suffisant.

Le chronomètre continue-t-il si je change d'onglet ?

Oui. Le temps écoulé est calculé à partir du timestamp performance.now() absolu, pas à partir de ticks cumulatifs. Lorsque vous revenez à l'onglet, l'affichage montre immédiatement le temps écoulé correct. Cependant, requestAnimationFrame est limité dans les onglets en arrière-plan, donc la mise à jour visuelle peut s'interrompre jusqu'à votre retour.

Que se passe-t-il si mon ordinateur se met en veille ?

performance.now() est monotone mais ne progresse pas pendant que le système est suspendu. Au réveil de l'ordinateur, l'affichage du chronomètre montrera le temps écoulé comme si le système n'avait jamais dormi — il n'inclura PAS la durée de veille. C'est le comportement correct pour la plupart des cas d'utilisation de chronométrage.

Puis-je exporter ou sauvegarder mes temps de tour ?

Le chronomètre ne prend actuellement pas en charge la sauvegarde ou l'exportation des données de tour. Tous les enregistrements de tour sont conservés en mémoire et effacés lors de la réinitialisation ou de la fermeture de la page. Pour un enregistrement persistant, copiez manuellement les temps affichés ou utilisez un tracker de fitness dédié.

Pourquoi utiliser performance.now() plutôt que Date.now() ?

performance.now() est monotone — il ne recule jamais. Date.now() peut sauter de plusieurs secondes ou minutes lorsque l'horloge système est ajustée (synchronisation NTP, changement manuel, heure d'été). Pour le chronométrage de courte durée, performance.now() est le bon choix. Il offre également une résolution inférieure à la milliseconde, contrairement à la résolution en millisecondes de Date.now().

Des données sont-elles téléchargées vers un serveur ?

Non. Le chronomètre s'exécute entièrement dans votre navigateur. Aucune donnée de chronométrage, enregistrement de tour ou information d'utilisation n'est envoyée à un serveur. La page fonctionne hors ligne une fois chargée.

Quelle est la différence entre un chronomètre et un minuteur de compte à rebours ?

Un chronomètre mesure le temps écoulé vers le haut depuis zéro — il répond à « combien de temps cela a-t-il pris ? ». Un minuteur de compte à rebours part d'une durée définie et compte à rebours jusqu'à zéro — il répond à « combien de temps reste-t-il ? ». Cet outil est un chronomètre ; pour une fonctionnalité de compte à rebours, utilisez l'outil Minuteur de Compte à Rebours.