Acá tenés un buen ejemplo con onfocus, onblur y setInterval:
http://jsbin.com/ulize3
Otra alternativa es usar requestAnimationFrame, que sólo se activa si la pestaña/página está activa y lo hace por defecto, sin tener que usar flags, pero el problema es que no tiene soporte en todos los navegadores:
http://paulirish.com/2011/requestani...art-animating/