Also, requestAnimationFrame is not called when the browser tab is not visible, which makes it better for battery life on mobile.