Safari 5.1 和更早版本的浏览器不提供requestAnimationFrame
功能,这对于某些使用基于 JavaScript 的动态定位的应用程序来说是必不可少的。setInterval
不是一个令人满意的替代品,因为它在更新和渲染之间缺乏同步。如何requestAnimationFrame
在这些浏览器上正确模拟?
问问题
267 次
1 回答
1
我认为您除了计时器之外别无选择。如果您想通过 避免可能的丢帧setInterval
,请使用setTimeout
,并每次从回调开始新的超时:
function renderFrame() {
// do stuff
setTimeout(renderFrame, 1000/30);
}
renderFrame();
实际上,我的第一句话并不准确。谷歌搜索向我展示了其他选项,例如基于时间戳的解决方案,以及另一个同时使用时间戳和 setTimeout的解决方案。
于 2013-06-15T18:43:35.593 回答