qub*_*yte 6 javascript requestanimationframe
我有一个正在处理的小项目,它使用了twitter流API,并从中制作了一些画布动画。鉴于Twitter流API尚未结束,该动画可以无限期进行。
问题就出在这里。requestAnimationFrame
似乎是通过递归操作的,直到ES6,我们才得到正确的尾调用,这意味着我认为这会增加每一帧的调用堆栈。
问题是,我是否正确,这最终会导致超出最大调用堆栈大小的错误,还是浏览器在耍花招以避免限制?requestAnimationFrame
真的是在做一些我不理解的奇怪事情(也许是在setInterval
不递归的过程中)吗?
在Chrome 36.0.1985.32 Beta(调用堆栈大小为20834)中,我正在测试:
function test(t) {
requestAnimationFrame(test);
}
test(performance.now());
Run Code Online (Sandbox Code Playgroud)
并没有发现任何问题。我希望RangeError
假设以60fps的速度拍摄约6分钟。
chrome开发人员工具窗口的“调用堆栈”部分中显示了另一个令人误解的信息,在该处显示了requestAnimationFrame
调用堆栈,因为它将填充堆栈,如下图所示:
归档时间: |
|
查看次数: |
1117 次 |
最近记录: |