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…