We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
参考文章
首先:
setTimeout 规范由 whatwg 来维护
规范中存在这样两条:
而在浏览器实现端,做了调整,对于chrome
为什么最小值是1,不是0??
为什么>=5 时,最小是4
各个浏览器都未完全按规范实现,但主流浏览器基本与chrome 实现相似。
requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行;
在离屏情况下,当tab已经被切换(chrome针对这个有优化),或则动画已经被滚动到非可视区,setTimeout与setinterval仍然会计算更新动画,而requestAnimationFrame就会停止(懒惰优化策略);
setTimeout与setinterval只会根据他们的计算,认为需要更新动画,就去更新;而没有和屏幕本身的刷新同步;而requestAnimationFrame的动画是和屏幕整体刷新同步的;这种和屏幕不同步的更新,会导致不必要的计算,没有和侦更新同步的,会被丢弃,会更多的消耗cpu;
当你的网页需要在一些不同的设备上运行时(fps不同),setTimeout与setinterval设置更新评率需要做更多的适配;
页面多动画时,setTimeout的处理会比较复杂。
等待被发现
The text was updated successfully, but these errors were encountered:
No branches or pull requests
为什么 setTimeout 有最小时延 4ms ?
参考文章
首先:
setTimeout 规范由 whatwg 来维护
规范中存在这样两条:
而在浏览器实现端,做了调整,对于chrome
为什么最小值是1,不是0??
为什么>=5 时,最小是4
各个浏览器都未完全按规范实现,但主流浏览器基本与chrome 实现相似。
setTimeout 与 requestAnimationFrame 区别
requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行;
在离屏情况下,当tab已经被切换(chrome针对这个有优化),或则动画已经被滚动到非可视区,setTimeout与setinterval仍然会计算更新动画,而requestAnimationFrame就会停止(懒惰优化策略);
setTimeout与setinterval只会根据他们的计算,认为需要更新动画,就去更新;而没有和屏幕本身的刷新同步;而requestAnimationFrame的动画是和屏幕整体刷新同步的;这种和屏幕不同步的更新,会导致不必要的计算,没有和侦更新同步的,会被丢弃,会更多的消耗cpu;
当你的网页需要在一些不同的设备上运行时(fps不同),setTimeout与setinterval设置更新评率需要做更多的适配;
页面多动画时,setTimeout的处理会比较复杂。
更多
等待被发现
The text was updated successfully, but these errors were encountered: