alarm-clock.org/browser-limitations

Browser timing limitations

alarm-clock.org's alarm, timer and stopwatch run entirely in your browser tab. That's what makes them fast and free — no app, no account — but it also means they inherit every limitation of the browser itself. This page explains what those limitations are, why they exist, and when you should reach for a dedicated device instead.

Browser throttling

Browsers deliberately slow down JavaScript timers (setTimeout, setInterval) in tabs that aren't active, to save battery and CPU across all your open tabs. A timer asked to fire every second can be throttled to once every several seconds, or longer, once the tab is in the background. This is a built-in browser optimization, not a bug in the page — every website's timers are throttled the same way.

Background tabs

A "background tab" is any tab that isn't the one currently on screen — you switched to check email, opened another window, or your phone locked. Alarms and timers keep running in the background, but throttling (above) means the countdown display can lag, and on some browsers and devices the tab can be suspended or unloaded entirely to free up memory, especially if you have many tabs open or the device is low on RAM. If the tab itself is discarded, nothing further can fire until you switch back to it.

The Wake Lock API

Wake Lock is a browser feature that can keep a device's screen from automatically turning off while a page is open — useful for a full-screen bedside alarm or a kitchen timer you want to glance at. It does not keep a background tab running at full speed, prevent the operating system from suspending the browser app entirely, override a phone's silent or Do Not Disturb mode, or work at all unless the tab stays in the foreground. It solves one narrow problem (the screen dimming) and nothing else.

Mobile OS behavior

Phones and tablets are more aggressive than desktops about reclaiming resources from apps and tabs the person isn't actively looking at. iOS Safari can suspend a background tab's JavaScript within seconds of switching away, and reloads the page from scratch when you return — any in-progress alarm or timer state in that tab is gone. Android's behavior varies by manufacturer: many OEM battery managers apply their own, more aggressive restrictions on top of what Chrome or the OS already does, and can suspend a browser tab even while it's technically "open." None of this is specific to alarm-clock.org — it applies to every site's browser-based timer.

Battery optimization

Low Power Mode (iOS), Battery Saver (Android, Windows) and similar OS-level features reduce background CPU activity to extend battery life. A browser tab running a countdown is exactly the kind of background activity these features are designed to throttle. The tradeoff is deliberate on the OS's part — battery life over background timing precision — and there's no setting on alarm-clock.org's side that can override it.

Why browser timing cannot be guaranteed

Web browsers were never designed as real-time systems. JavaScript's timing functions are explicitly best-effort: the spec allows the browser to delay a scheduled callback for throttling, other work on the page, or system load, and every browser and OS combination applies its own additional layer of power-saving behavior on top of that. Combine that with a phone that can lock, sleep, suspend the tab, or kill the browser app outright, and there's no way for any website — this one included — to promise that a background timer will fire at the exact millisecond, or fire at all, if the device has gone to sleep in the meantime.

Keeping the tab open and on screen (or using full-screen bedside mode for the alarm) avoids almost all of this, because an active, visible tab isn't throttled the same way a background one is.

Use a dedicated device for anything critical

alarm-clock.org is built for convenience — a quick timer while cooking, an alarm for a nap, a stopwatch for a workout, a countdown to share. For anything where missing the moment has real consequences — waking up for a flight, a medication reminder, a safety-critical alert — use a purpose-built alarm clock, your phone's native (non-browser) alarm app, or another dedicated device designed to run reliably while your screen is off and your browser is asleep. Those tools are built to work outside the constraints described on this page; a browser tab fundamentally is not.

Planning to leave the alarm's full-screen bedside mode open overnight? That's a screen hardware question, not a timing one — see screen warnings for burn-in risk and manufacturer guidance.

This page describes the behaviour. How accurate is a browser timer? measures it — setInterval drift, tick error under CPU load, and the four-millisecond floor under nested timeouts — and is explicit about the three behaviours on this page that could not be measured.

💡 Question, problem or idea? Tell us →

Ask us anything about the tools, tell us what's broken or confusing, or suggest something we're missing. Every message is read by a person.

If you leave an email we'll reply to questions. We can't promise to build every suggestion, but they directly shape what we work on next.