I’ve been experimenting with an idea in order to play well with graphic performance: http://npmjs.com/raf-timeout
I think it’s a good idea for performance, and it will work with most apps (as long as they have rAF). In rare cases, an app might need setTimeout or setInterval to fire exactly as expected, but for most apps, the -+16ms inaccuracy introduced by using requestAnimationFrame is negligible.