Chronometer
00:00.00
How to use this chronometer
- Click "Start" to begin timing.
- Click "Lap" to record split times without stopping.
- Click "Reset" to clear everything and start over.
How precise is this stopwatch?
It uses your browser's high-precision animation frame timing, accurate to within a few milliseconds — precise enough for workouts, cooking, presentations, or any everyday timing need.
Does the timer keep running if I switch tabs?
Yes, the underlying clock keeps counting even if the tab is in the background, though the display may pause updating until you return to the tab.
Is there a limit to how many laps I can record?
No practical limit — laps are stored in memory and listed newest first, for as long as your browser tab stays open.
Why a good browser timer uses performance.now(), not Date.now()
It might seem natural to build a stopwatch around JavaScript's Date.now(), but a well-built timer specifically avoids it in favor of the Performance API's performance.now() instead, and the reason is a genuinely important, easy-to-miss detail. Date.now() reflects your system's wall clock, which is not actually a perfectly steady, monotonic value — it can jump backward or forward if your computer's clock gets adjusted mid-measurement, whether from manual correction, daylight saving time changes, or automatic NTP time synchronization, any of which would silently corrupt an elapsed-time calculation built on it. performance.now() instead returns a high-resolution, strictly monotonic timestamp specifically designed for measuring durations — it's guaranteed to only ever increase, completely unaffected by the system clock being adjusted, which is exactly the property that makes it the correct, reliable foundation for measuring elapsed time in any timer, not just this one.
Why browsers throttle timers in background tabs, and what that means here
Modern browsers deliberately throttle JavaScript timers and animation frame callbacks in tabs that aren't currently visible, specifically as a battery and CPU-saving measure — a background tab simply doesn't need to update its visual display 60 times per second when nobody is actually looking at it. This is exactly why this chronometer's underlying elapsed time keeps counting accurately in the background (since it's computed from the actual timestamp difference, not from counting how many animation frames fired), even though the on-screen display itself may visibly pause updating until you switch back to that tab — the accumulated time is correct the whole time, but the browser deliberately isn't spending resources repainting a display nobody can currently see.
Lap time versus split time — a distinction worth knowing if you're timing intervals
"Lap" and "split" are sometimes used loosely and interchangeably, but they technically mean two genuinely different measurements worth distinguishing clearly. A split time is the total elapsed time from the very start up to that specific recorded point — always increasing, cumulative. A lap time is instead the duration of just that one individual segment, measured from the previous lap marker to this one — it resets conceptually with each new lap, showing how long that particular interval specifically took rather than the running cumulative total. This chronometer's lap feature records split times (the cumulative elapsed total at each button press) — if what you actually need is each individual segment's own duration, that's calculated by subtracting each successive split time from the one recorded immediately before it.
Why browser-based timing isn't appropriate for scientific or legally certified measurement
While a browser's high-resolution timer is genuinely accurate to within a few milliseconds — more than sufficient for workouts, cooking, presentations, and essentially all everyday timing needs — it's worth understanding why it isn't the right tool for scientific research or officially certified competitive timing. A web page runs inside an operating system that's itself juggling many other processes, and JavaScript execution can experience small, unpredictable scheduling delays from that broader system contention that a dedicated, purpose-built hardware timer simply doesn't experience. For genuinely rigorous scientific measurement or official competition-grade timing (like an Olympic sprint), dedicated hardware timing systems specifically engineered for that exact purpose remain necessary — a browser-based stopwatch, however well-built, is accurate enough for everyday practical use but was never designed to meet that considerably higher, specialized bar.
Limitations of this tool
This chronometer uses your browser's high-precision timing APIs, accurate to within a few milliseconds — precise enough for everyday timing needs, but as explained above, not intended for scientific research or officially certified competitive timing, which require dedicated hardware built specifically for that purpose. Laps are recorded as split times (cumulative elapsed totals) and stored only in your browser's memory for the current session — closing or refreshing the tab clears them, since nothing is saved to a server or persisted to local storage for you to return to later.