Countdown-Timer
Stunden, Minuten und Sekunden einstellen, den Countdown starten und beim Ablauf ein klares Alarmsignal hören — funktioniert auch im Hintergrund-Tab.
1.047 Aufrufe
Wie der Countdown genau bleibt
Ein Countdown, der bei jedem Auslösen von setInterval einfach eine Sekunde von einer laufenden Summe abzieht, klingt einfach, ist aber über die Zeit nicht präzise. Jeder Tick geht davon aus, dass genau 1000 Millisekunden vergangen sind, doch die Ereignisschleife des Browsers kann beschäftigt sein — andere Skripte, Animationen oder ein Hintergrund-Tab — und Ticks lösen dann ein paar Millisekunden zu spät aus. Diese kleinen Verzögerungen summieren sich zu sichtbarer Abweichung: Ein so gebauter 10-Minuten-Timer kann beim Erreichen von null mehrere Sekunden zu früh oder zu spät fertig sein.
Dieses Tool umgeht das Problem mit einer anderen Methode: Es berechnet in dem Moment, in dem Sie Start drücken, einen festen Ziel-Zeitstempel — die aktuelle Zeit plus die gewählte Dauer — und fragt bei jedem Tick lediglich, wie viel Zeit bis zu diesem Ziel verbleibt, statt von einer laufenden Summe herunterzuzählen. Da die verbleibende Zeit stets aus zwei realen Uhrzeitmessungen neu berechnet wird, hebt sich jede aufgelaufene Tick-Verzögerung automatisch auf; die angezeigte Zeit bleibt korrekt, selbst wenn einzelne Ticks verspätet auslösen.
Was Sie wissen sollten
Wenn der Tab, den Sie timen, im Hintergrund liegt, drosseln Browser Timer oft, um Akku und CPU zu sparen, und lösen sie seltener aus als angefordert. Der Ziel-Zeitstempel-Ansatz kommt auch damit elegant zurecht: Es spielt keine Rolle, wie viele Ticks übersprungen wurden, denn der Countdown vergleicht beim nächsten Ausführen ohnehin wieder die reale Zielzeit mit der realen aktuellen Zeit — er erreicht null zum korrekten Zeitpunkt, unabhängig davon, wie stark der Tab zwischendurch gedrosselt war.
- Der Alarmton wird direkt mit dem Oszillator-Knoten der Web Audio API erzeugt — keine Audiodatei muss geladen werden, es gibt also keine Verzögerung, bevor er erklingt.
- Der Titel des Browser-Tabs aktualisiert sich mit der verbleibenden Zeit, sodass Sie in einem anderen Tab einen Blick darauf werfen und den Countdown trotzdem sehen können.
- Pausieren speichert die verbleibende Dauer und berechnet beim Fortsetzen einen neuen Ziel-Zeitstempel, sodass auch Pausieren und Fortsetzen keine Abweichung einführen.
Häufig gestellte Fragen
Höre ich den Alarm, wenn ich in einem anderen Tab bin?
Ja — der Alarmton wird von diesem Tab abgespielt, unabhängig davon, welcher Tab gerade im Fokus ist, solange der Browser-Tab selbst geöffnet bleibt (nicht geschlossen wird).
Pausiert der Countdown, wenn mein Laptop in den Ruhezustand geht?
Er pausiert zusammen mit dem System, wie jeder Browser-Timer — wenn Sie das Gerät aufwecken und die Zielzeit bereits verstrichen ist, zeigt er sofort null und alarmiert unmittelbar.
Kann ich auch Stunden einstellen, nicht nur Minuten?
Ja — Stunden, Minuten und Sekunden sind alle verfügbar, das funktioniert von einem 10-Sekunden-Signalton bis zu einem mehrstündigen Countdown.
Warum bleibt der Timer auch über lange Zeiträume genau?
Weil er nie einzelne Ticks aufsummiert. Er berechnet beim Drücken von Start einen einzigen festen Ziel-Zeitstempel und berechnet bei jedem Tick "Ziel minus jetzt" neu, sodass eine Verzögerung bei einem einzelnen Tick keinen Einfluss auf das Endergebnis hat — der Timer erreicht trotzdem exakt zum richtigen Zeitpunkt null.
Wirft Drosselung in einem Hintergrund-Tab den Countdown durcheinander?
Nein. Browser verlangsamen Timer in inaktiven Tabs, um Energie zu sparen, sodass Ticks seltener auslösen können, aber da jeder Tick die verbleibende Zeit aus dem realen Ziel-Zeitstempel neu berechnet statt vergangene Ticks zu zählen, erreicht der Countdown trotzdem zum korrekten realen Zeitpunkt null.
Ähnliche Tools
Problem melden
Countdown-Timer
Kommentare
Noch keine Kommentare — schreiben Sie den ersten!