我们的性能优化策略,也是基于这个问题,针对每⼀步依次解析
步骤
- ⽤户输⼊taobao.com
- 域名解析 浏览器通过DNS,把url解析为IP
- 发起TCP三次握手建立连接
- 建立连接后发起http请求
- 服务器响应请求,浏览器获取html源码
- 浏览器收到⾸屏html,开始渲染
- 解析html为dom
- 解析css 为css-tree
- dom+ css ⽣成render-tree 绘图
- 加载script的js⽂件
- 执⾏js
所谓性能优化,就是上⾯的步骤加⼀起,时间尽可能的短,所以基本也有两⼤⽅向
少加载⽂件
少执⾏代码
DNS
- 查看dns缓存
- 本地没缓存,发起dns请求,向本地配置的DNS服务器发请求(递归)
优化: prefetch 预获取,⽐如使⽤了cdn的域名
TCP
IP TCP HTTP的关系
IP负责找到
TCP 负责数据完整性和有序型, 三次握⼿,粘包 ,滑动窗⼝等机制( Vs udp)
http应⽤层,负责应⽤层数据,数据终⽌时机
优化策略:
- ⻓连接
- 减少⽂件体积
js打包压缩