某些移动端 requestAnimationFrame 更慢的原因?

比如小米自带的浏览器。

原因已经找到了。就是视频中说的小米的miui V5是基于一个没有完成的浏览器版本。
解决办法在这里
JavaScript基于时间的动画算法

阅读 7.9k
3 个回答

说不定你遇到了 MIUI 的问题,详见 Egret HTML5 大会上关于小米的一段吐槽,简单说就是 MIUI V5 基于一个有问题的浏览器内核做开发,导致浏览器性能太差,帧率上不去。

直接跳转到 27:43 观看吐槽。

链接

不过这只是猜测,你可以多换几台小米机器试试。

省電?

反正只要運算量不大,iOS 和 OSX 的 fps 一樣。

我自己想了一下觉得可能是这样。欢迎对此有研究的高人继续回答。
requestAnimationFrame是和浏览器帧频相关的。桌面浏览器一般支持的浏览器都能到60帧的帧频。
但是移动端。比如小米浏览器。支持这个方法。但是帧频只有可怜的15帧左右。假如做的效果是一个物体从0运动到500,速度恒定S。 那么它运动完需要的时间将会比桌面浏览器长4倍。所以会感觉很慢。
除非在requestAnimationFrame调用的方法中根据帧频调整速度S为以前的4倍。这样保证运动所需时间和桌面浏览器一样长。所以在使用这个方法的时候,要注意一下使用场景。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题