前端性能优化一
减少浏览器的回流和重绘 1. CSS 方面 避免过多样式嵌套 避免使用 CSS 表达式 使用绝对定位,可以让动画元素脱离文档流 避免使用 table 布局 尽量不要使用 float 布局 图片最好设置好 width 和 height 尽量简化浏览器不必要的任务,减少页面重新布局 使用 Viewport 设置屏幕缩放级别 避免频繁设置样式,最好把新 style 属性设置完成后,进行一次性更改 避免使用引起回流/重绘的属性,最好把相应变量缓存起来 2. JS方面 最小化回流和重排 为了减少回流发生次数,避免频繁或操作 DOM ,可以合并多次对 DOM 修改,然后一次性批量处理。 控制绘制过程和绘制区域 绘制过程开销比较大的属性设置应该尽量避免减少使用 减少绘制区域范围 DOM优化: 控制DOM大小并简化DOM操作 1. 控制DOM大小 总所周知,页面交互卡顿和流畅度很大一部分原因就是页面 有大量DOM元素。 想象一下,从一个上万节点的DOM树上,使用 querySelectorAll 或 getElementByTagName 方法查找某一个节点,是非常耗时的。另外元素绑定事件,事件冒泡和事件捕获的执行也会相对耗时。 通常控制 DOM 大小的技巧包括: 合理的业务逻辑 延迟加载即将呈现的内容 2. 简化DOM操作 对 DOM 节点的操作统一处理后,再统一插入到 DOM Tree 中