web性能优化有那些部分可以优化
缓存
使用Expires或者cache-control
DNS查询
- 减少DNS查询次数,使用同一个域名
- DNS预解析
<link rel="dns-prefetch" href="https://xxx.com/">
建立TCP连接
- TCP连接复用:Connection: keep-alive
- 使用HTTP 2.0多路复用
发送请求
- 减少cookie体积
- 使用多个域名,浏览器同时送多个请求,一个域名一般为4-8个(和DNS查询矛盾,如果你的文件很多,10个文件之类的,那么就使用多个域名,增加cdn查询次数,如果文件很少,使用较少的域名减少cdn查询次数)
- 合并文件,减少请求次数
接受响应
- 使用Etag,Etag和cache-control的区别,Etag有请求,不下载,cache-control直接不请求
- 使用Gzip
接受完成
压缩html,删掉回车,删掉注释
解析DOCTYPE
正确写上DOCTYPE
解析标签
减少无用的标签
压缩文件
- 压缩css
- 压缩js
引用位置
- 把css放在顶部
- 把js放在底部
解析图片发送请求渲染
- 压缩图片:比如canvas实现,google guetzli算法,使用jpegtran压缩jpeg,使用pngcrush压缩png
- 不使用src为空的图片(使用about:blank)
用户体验
懒加载
很庞大的界面使用懒加载提高用户体验
预加载
用户一定会点击的页面采用预加载,比如小说下一页
使用lodding动画
使用了lodding会让用户觉得时间过的比较快
使用CDN
使用CDN,减少不同地区用户的体验差距