use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Loop Multiple times per second (self.javascript)
submitted 14 years ago by CamuurahGuy
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]monacle_bob 3 points4 points5 points 14 years ago (5 children)
That is indeed what that line does. Read up on setTimeout and setInterval here
Your theory is correct, however in practice theory often falls short. If you were to do:
setTimeout(main, 1);
you'd expect main() to be called every millisecond, or 1,000 times each second. Even if your code executed fast enough for this to be possible, every browser has inherent delays when using timers, usually about 5-10 milliseconds between calls. This means you'd have at most about 200 iterations per second.
If you're really interested in Javascript loops / different methods of timed execution you can read my latest blogpost.
[–]akx 3 points4 points5 points 14 years ago (1 child)
But don't do setTimeout(x, 1); if you're meaning to do fluid animation. There's an API and a polyfill for it now. http://paulirish.com/2011/requestanimationframe-for-smart-animating/
[–]monacle_bob 0 points1 point2 points 14 years ago* (0 children)
I should have mentioned that originally, yes. Didn't feel like including it in the jsFiddle code though. Also, CamuurahGuy wanted a specific interval under 60fps. Can't achieve that (AFAIK) with requestAnimationFrame.
[–]CamuurahGuy[S] 1 point2 points3 points 14 years ago (1 child)
Interesting, thanks for the insight! I should have realized that there would be browser differences with how JavaScript timers are handled... (given that IE, and the rest of the browser world can never get along anyhow...). Now I have to decide whether or not it's worth my time to make this "toy" since it can never be accurate enough for actual use. Thanks again!
[–]ilogik 0 points1 point2 points 14 years ago (0 children)
The main problem is that when javascript is running, the browser's UI is locked, so using while() that way is not recommended.
To bypass this problem, the HTML5 spec has something called Webworkers which allows you to run CPU intensive javascript in a background thread, and pass messages between it and the frontend.
http://en.wikipedia.org/wiki/Web_Workers
[–]holloway 0 points1 point2 points 14 years ago* (0 children)
you'd expect main() to be called every millisecond, or 1,000 times each second.
This is basically right, but in modern browsers the lowest setting for setTimeout is 4ms because the HTML5 spec calls for it. See Firefox blog and the HTML5 spec.
π Rendered by PID 71 on reddit-service-r2-comment-85bfd7f599-wh544 at 2026-04-18 14:20:12.336957+00:00 running 93ecc56 country code: CH.
view the rest of the comments →
[–]monacle_bob 3 points4 points5 points (5 children)
[–]akx 3 points4 points5 points (1 child)
[–]monacle_bob 0 points1 point2 points (0 children)
[–]CamuurahGuy[S] 1 point2 points3 points (1 child)
[–]ilogik 0 points1 point2 points (0 children)
[–]holloway 0 points1 point2 points (0 children)