前端性能优化

2020-07-20  本文已影响0人  Ancestor楠

一、代码部署:

1、代码的压缩与合并:

guip-minify-css:去换行、去空格、多文件合并成一个

2、图片、js、css等静态资源使用和主站不同域名地址存储,从而使得在传输资源时不会带上不必要的cookie信息:

不携带Cookie节省带宽

3、使用内容分发网络 CDN:

分发CDN

4、为文件设置Last-Modified、Expires和Etag:

缓存(公司运维人员)

5、使用GZIP压缩传送:

GZIP压缩节省40%

6、权衡DNS查找次数(使用不同域名会增加DNS查找):

权衡DNS查找次数,与第2点矛盾

7、避免不必要的重定向(加"/"):

加"/"可避免不必要的重定向

二、编码

html:

1、使用结构清晰,简单,语义化标签

2、避免空的src和href

3、不要在HTML中缩放图片---会导致重新计算像素点

css:

1、精简css选择器:层级要少

 2、把CSS放到顶部

3、避免@import方式引入样式

4、css中使用base64图片数据取代图片文件,减少请求数,在线转base64网站:http://tool.css-js.com/base64.html

5、使用css动画来取代javascript动画

6、使用字体图标,图标库网站:http://fontawesome.io/icons/,在线制作网站:www.iconfont.cn

7、使用css sprite--雪碧图

减少浏览器请求次数;

不会出现闪烁

8、使用svg图形--小,清晰

9、避免使用CSS表达式:

a {star : expression(onfocus=this.blur)}

javascript:

1、减少引用库的个数

2、使用requirejs或seajs异步加载js

3、JS放到页面底部引入

4、避免全局查找

5、减少属性查找

6、使用原生方法

7、用switch语句代替复杂的if else语句

8、减少语句数,比如说多个变量声明可以写成一句

9、使用字面量表达式来初始化数组或者对象

10、使用DocumentFragments或innerHTML取代复杂的元素注入

11、使用事件代理(事件委托)

12、避免多次访问dom选择集

13、高频触发事件设置使用函数节流,如:onmousemove、onmouseover

14、使用Web Storage缓存数据

15、使用Array的join方法来代替字符串的“+”连接(先将要连接的字符串放进数组)

上一篇下一篇

猜你喜欢

热点阅读