Eine präzise Online-Stoppuhr mit Runden- und Zwischenzeiten, Tastenkürzeln und einer kopierbaren Ergebnisliste. Nutzt eine monotone Uhr, sodass ein gedrosselter Hintergrund-Tab sie nicht driften lassen kann.
Eine Stoppuhr, die nicht driftet. Starte, pausiere und erfasse Runden mit den Tasten oder der Tastatur. Jede Runde behält sowohl ihre eigene Zwischenzeit als auch die Gesamtzeit, und die gesamte Liste lässt sich auf einmal kopieren.
00:00:00.00
–
Leertaste startet und pausiert, L erfasst eine Runde, R setzt zurück.
Runden
#ZwischenzeitGesamt
Noch keine Runden erfasst.
Was eine Browser-Stoppuhr präzise macht
Zeitstempel schlagen Zähler
Der naive Weg, eine Stoppuhr zu bauen, ist, bei jedem Tick einen festen Betrag zu einem Zähler zu addieren. Das ist auch der falsche Weg, denn Timer in einem Browser sind nicht garantiert planmäßig. Wechsle zu einem anderen Tab, wird das Intervall auf einmal pro Sekunde gedrosselt oder ganz pausiert; schläfst du den Laptop in den Ruhezustand, stoppt er ganz. Ein so gebauter Zähler verliert Zeit und holt sie nie wieder ein.
Dieses Chronometer zeichnet stattdessen den Moment des Starts auf und zieht ihn bei jeder Neudarstellung vom aktuellen Moment ab. Es sammelt sich nichts an, also kann sich auch kein Fehler ansammeln. Wird der Tab gedrosselt, stoppt die Anzeige mit dem Aktualisieren, aber die zugrunde liegende Uhr läuft weiter, und der erste Frame, nachdem du zurückkehrst, zeigt die korrekte verstrichene Zeit statt einer Zahl, die zurückgefallen ist, während du weg warst.
Monotone Zeit, nicht Wanduhzeit
Die hier verwendete Uhr ist performance.now(), die von Seitenladebeginn zählt und sich nur vorwärts bewegt. Das ist wichtig, weil die Wanduhzeit – was Date.now() meldet – springen kann. NTP-Korrekturen schieben sie nach, Übergänge zur Sommerzeit verschieben sie, und ein Nutzer, der die Systemuhr ändert, kann sie um Stunden in beide Richtungen bewegen.
Eine Stoppuhr, die von der Wanduhzeit liest, erbt jeden dieser Sprünge. Wenn eine NTP-Synchronisation mitten in die Messung fällt, ist dein aufgezeichnetes Intervall schlicht falsch, und nichts in der Oberfläche würde es anzeigen. Eine monotone Quelle hat keinen solchen Fehlermodus: Sie ist mit nichts synchronisiert, sie kann nicht angepasst werden, und das Einzige, was sie misst, ist die verstrichene Zeit.
Zwischenzeit versus Gesamt, und warum beide gezeigt werden
Jede Zeile zeichnet zwei Zahlen auf. Die Gesamtzeit ist die Zeit vom Start bis zu dieser Runde, und die Zwischenzeit ist die Zeit seit der vorherigen Runde. Sie beantworten unterschiedliche Fragen, und es lohnt sich, klar zu sein, welche man gerade liest.
Beim Zeitnehmen eines Läufers über acht Runden sagt dir die Zwischenzeit, ob er Tempo hält, nachlässt oder antritt – sie ist die Leistung pro Runde. Die Gesamtzeit sagt dir, wo er gegen eine Zielzeit für die ganze Distanz steht. Nur die Gesamtzeiten zu betrachten macht ein Nachlassen schwer zu erkennen, weil jede Zahl alles davor enthält; nur die Zwischenzeiten zu betrachten verliert den Gesamtüberblick. Beides zu zeigen bedeutet, dass du Tempo und Fortschritt aus derselben Tabelle lesen kannst, und der kopierbare Export behält beide Spalten für alles, wohin du sie einfügst.
Häufig gestellte Fragen
Wie präzise ist der Timer?
Die Anzeige zeigt Hundertstelsekunden, und die zugrunde liegende Uhr ist sub-millisekunden. In der Praxis ist die Grenze deine Reaktionszeit auf den Knopf, nicht der Timer.
Läuft er weiter, wenn ich die Tabs wechsle?
Ja. Die visuelle Aktualisierung pausiert, weil Browser Hintergrund-Tabs drosseln, aber die verstrichene Zeit wird aus Zeitstempeln berechnet, sodass die Anzeige bei deiner Rückkehr sofort den korrekten Wert zeigt.
Was ist der Unterschied zwischen Zwischenzeit und Gesamtzeit?
Die Gesamtzeit wird vom Start des Laufs bis zu dieser Runde gemessen. Die Zwischenzeit wird seit der vorherigen Runde gemessen. Zwischenzeiten zeigen das Tempo; Gesamtzeiten zeigen den Fortschritt gegen das Ganze.
Werden meine Runden beim Neuladen gespeichert?
Nein. Alles lebt nur im Speicher, also löscht ein Neuladen es. Kopiere die Rundenliste, bevor du die Seite verlässt, falls du sie behalten musst.
Was sind die Tastenkürzel?
Leertaste startet und pausiert, L erfasst eine Runde, und R setzt zurück. Sie werden ignoriert, während du in ein Feld tippst, sodass sie nicht unerwartet auslösen.
Kann ich eine Runde erfassen, während pausiert ist?
Nein, der Knopf ist deaktiviert. Eine Runde markiert einen Moment in einer laufenden Messung, also würde das Erfassen einer während der Uhr stillsteht nur die aktuelle Gesamtzeit duplizieren.