It can be much much worse. Browsers don't respect `setInterval`/`setTimeout` when you are not the foreground tab, not to mention possible delays because other processes want the CPU for themselves.

If you want to test, open a tab with http://virgule.net/tmp/test-interval.html, quickly open another tab and start doing something in that tab for a few seconds, come back and look at your js console ; you should see that some iterations took up to 1 second instead of 25 ms.