three.js is an impressive library but sadly, they still haven't fixed their busy wait architecture: if you do nothing and just stare at the page, it will still peg your CPU.
Library just gives you renderer with render function. It is up to you when and how you call it.
It's just that most of examples use requestAnimationFrame to call renderer.render, which gets called by browser when browser refreshes the screen (usually at 60 fps).
This makes sense when you can expect either changes in the scene or if a camera view changes all the time (most of examples are like this).
But if you know both your scene and camera will be static for a reasonable amount of time, you can update the rendering just at points of time when changes happen.
You can't use a busy wait for animations in JavaScript.
three.js schedules frames with the requestAnimationFrame or setTimout method. (Edit: actually you have to schedule frames yourself via these methods as bd's comment point out). There's no other way to flush the Canvas' drawing buffer than ending the currently running function and giving control back to the browser. If you'd implement a busy wait in JavaScript, the screen would never update and the browser will kill the script after a few seconds.
three.js knows nothing about the animation that is running and thus just attempts to draw at 60fps - whether or not there's anything new to show. You could pause the animation if there's no user inupt (and the animation wouldn't update on its own), but that's your obligation.
For example Editor refreshes the screen just when the camera or object changes:
http://mrdoob.github.com/three.js/editor/
Library just gives you renderer with render function. It is up to you when and how you call it.
It's just that most of examples use requestAnimationFrame to call renderer.render, which gets called by browser when browser refreshes the screen (usually at 60 fps).
This makes sense when you can expect either changes in the scene or if a camera view changes all the time (most of examples are like this).
But if you know both your scene and camera will be static for a reasonable amount of time, you can update the rendering just at points of time when changes happen.