前端性能优化(个人笔记)

274 阅读2分钟

1.DNS

1.首先DNS解析是要花费不少时间的,所以我们可以预解析DNS获取IP

<link rel="dns-prefetach" href="//img.baidu.com"/>

2. 减少用户与服务器之间的距离 ,cdn代理服务器分发网络。

2.减少三次握手和四次挥手的时间

1. 建立长连接

2.雪碧图(精灵图)将多张图片放在一张图片上

3. 文件打包,删除多余文件(webpack)

3.提前解析文件

预加载,将要现在不用但是马上会用到文件提前加载。

<link rel="preload" herf= "https://www.baidu.com">
可以通过预渲染将下载好的文件预先在后台渲染
<link rel="prerender" herf= "https://www.baidu.com">

4.图片方面的优化

 1. 图片类型的选择

  图片分为:位图和矢量图。位图是由一个个发光的像素点组成的,每个像素点由二进制数据来描述,一般是png gif jpg,占用内存较大。矢量图是由点线面组成的,内存较小,一般svg。

  • PNG: 是无损压缩(压缩的时候像素点都不会消失),占用内存较大,放大以后也会比较清晰。一般用来做小的logo
  • JPG: 是有损压缩(压缩的时候很多不是很重要的像素点都会给它去掉,下载速度较快),占用内存较小,图片放大以后,会比较模糊。
  • GIF: 支持动图
  • SVG:内存比较小 ,不失真,兼容性好 因为是代码来写的SVG图片学习成本高,渲染消耗性能。用途:阿里巴巴矢量图标

2. 上面提到的雪碧图(精灵图)

3.能用css就不要用图片

5. 防抖和节流

6. 浏览器的缓存(强缓存和协商缓存)

7.懒加载和预加载

8.减少回流和重绘

9.DOM diff 

10.将<script></script>放在body的下面防止阻塞渲染。

最后:

有时间详细更新。

推荐大家看雅虎军规35条优化。jianshu.com/p/4cbcd202a…