首先要有工具能够分析性能表现和瓶颈
打开 Chrome devtools 的 Performance 面板, 点击按钮或者使用快捷键(CMD + E)开始记录性能
?..., 并且卡顿结束会跳帧, 而不是基于卡顿前的位置继续绘制动画
?...使用硬件加速后, 绘制过程将不再占用主线程, 直接在 GPU 上完成
因此, 点击按钮阻塞主线程, 也并不会影响动画, 你可以亲自试一试
使用 JS 动画
首先使用 setInterval 实现动画循环...image
timer 是固定间隔时间触发的, 每过一段时间就会出现在一帧内 timer 触发两次的情况
而且同样的, JS动画也是会被主线程阻塞的
使用 requestAnimationFrame 优化...JS 动画
在高帧率情况下, setInterval 和 requestAnimationFrame 并没有明显的区别, 我们来增加单帧内的计算量, 首先看 setInterval
function