前端性能优化总结

207 阅读2分钟
1.不要直接在html中缩放图片,保持图片的原始尺寸。 

2.减少重绘与重排:重排指改变元素尺寸导致浏览器重新渲染元素的行为,重绘指改变了外观显示属性如:颜色。具体可以查看阮一峰博客。 

3.使用体积小可缓存的favicon.ico

4.获取数据使用get请求,get请求可缓存。且只有请求体,参数在地址中,post有请求体和data,数据包多。 

5.减小cookie体积,去掉无用cookie。 

6.删除项目中无用的脚本文件。 

7.避免图片标签有空src,虽然为空,依然会发送http请求。 

8.压缩脚本体积,利用构建工具,webpack、gulp等。 

9.启用Gzip,发送包含申请压缩的请求头。 

10.延迟加载和预加载。如图片懒加载是预加载,非首屏使用的资源可以在完全加载后进行预加载。 

11.减少dom数量。 

12.不要使用filter,不使用css表达式,使用link代替import,样式表放在head标签内。 13.使用cdn存放前端资源。 

14.使用事件委托去绑定事件。 

15.js脚本放在页面底部。

一些实际的琐碎点:

使用一些UI框架时候,支持局部引入的,优先局部引入。插件可通过cdn链接引入,配置webpack的externals减小打包体积。非首屏需要的样式文件与JS可以动态创建标签加载或者异步加载(defer与async)。 JS写法中,当对象层级较多时,可以定义临时变量保存要操作的节点,层级越深,JS引擎在运行时候解释代码花费的时间越多。少使用for in循环,for in会查找原型链上可遍历的属性。在for循环内部,计算出终止点的条件,避免每次开始去计算一次。 CSS写法中,避免使用类选择层级过多的写法,由于css解释是从右到左的,会优先匹配到最右的标签。避免使用计算属性,减少使用昂贵属性,如:filter,box-shadow,border-radius,渐变等。