网页性能判断标准,js动画,css动画都需要注意什么
RAIL可以帮助我们判断什么样的网页是丝滑的,而开发者工具可以让我们进一步准确的捕获出网页的性能数据。
JS动画要保证预留出6ms的时间给浏览器处理像素管道,而自身执行时间应该小于10ms来保证整体运行速度小于16ms。但触发动画的时机也很重要,定时器无法稳定的触发动画,所以我们需要使用requestAnimationFrame触发JS动画。同时我们应该避免一切FSL,它对性能的影响非常大。
CSS动画我们可以通过降低绘制区域并且使transform属性来完成动画,同时我们需要管理好图层,因为绘制和图层管理都需要成本,通常我们需要根据具体情况进行权衡并做出最好的选择。
参考文章:让你的页面更丝滑
减少回流和重绘
- 不要一条一条的修改DOM样式,与其这样,不如预先定义好css的class,然后修改DOM的className
- 不要把DOM节点的属性值放在一个循环中当作循环里的变量
- 为动画的HTML元件使用fixed或absolue的position,那么修改他们的css时不会回流的
- 不要使用table布局,因为可能很小的一个小改动会造成这个table的重新布局
参考文章:详谈层合成(composite)