https://stackoverflow.com/questions/17926327/why-requestanimationframe-recursion-wont-eat-up-ram
function
window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数, 该回调函数会在浏览器下一次重绘之前执行
Here's the MDN's example:
function step(timestamp) { var progress = timestamp - start; d.style.left = Math.min(progress/10, 200) + "px"; if (progress < 2000) { requestAnimationFrame(step); } } requestAnimationFrame(step);
Why "requestAnimationFrame" recursion won't eat up RAM?
stackoverflow上面有人说这个不是递归,但是自己栈就没有出来过,其实就是递归,自己尝试了类似的函数调用的方法,直接显示栈溢出,这种调用方式就是递归或者基本一致,而js里面调用requestAnimationFrame可行是因为浏览器进行了处理,正如作用一样,这个函数用来请求刷新前执行的,因为浏览器自己有一个刷新的帧,我们直接通过requestAnimationFrame递归来就可以不用setInterval了,更加节省CPU/GPU...资源
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步