javascript - 使用 requestAnimationFrame polyfill 时是否需要清除超时?
问题描述
旧版浏览器有一个 requestAnimationFrame polyfill,它回退到setTimeout()
. 我想知道我们是否需要在使用window.requestAnimationFrame()
. 下面是一个代码片段示例:
var timeout;
window.addEventListener( 'scroll', function() {
if ( timeout ) {
window.cancelAnimationFrame( timeout );
}
timeout = window.requestAnimationFrame( myFunction );
}, false );
或者应该是这样(如果是,那么你能解释一下原因吗?):
window.addEventListener( 'scroll', function() {
window.requestAnimationFrame( myFunction );
}, false );
解决方案
它应该用作本机 requestAnimationFrame。想想这是本机实现,如果你需要调用cancelRequestAnimationFrame,那么你仍然需要调用它。
推荐阅读
- neuraxle - 如何最好地处理 Neuraxle 管道中的错误和/或丢失数据?
- mongodb - pymongo:不能使用存储在 Redis 中的恢复令牌
- vector - LibGDX:如何通过触摸移动?
- c++ - 文件已加载,但未显示纹理
- r - 自定义搜索引擎的“term1 OR term2”查询的正确语法是什么
- sql - 更新活动记录关系时间列导致比预期差 1 天
- github - Github 的“Environment”和“Repository”secret 的区别?
- javascript - 当输入为onFocus时设置光标位置?
- c - 使用终端编译两个C文件,一个文件包含ah,两个文件包含ch
- sql - 对 CASE 语句使用 where 条件