01.引言:一个老生常谈的面试问题
2019-06-05 本文已影响0人
Fl_来看看
从输入 URL 到页面加载完成,发生了什么?
内容出自前端性能优化原理与实践,我作为笔记简单记录下。
这个问题很重要,前端所有性能优化问题都是基于这个流程展开的。
流程主要为:通过dns解释获得域名ip,得到ip就可以和服务器建立tcp连接(三次握手),连接之后就可以发起http请求了,服务器接收到请求,将数据放在http响应里返回给我们,浏览器拿到数据后开始渲染页面,渲染完毕,就可以看到我们想要的页面了
简单来说,分五步:dns解释域名,tcp连接,http请求,服务器响应,浏览器渲染
前端优化都是从这个流程着手的,或者说从上面五步下手的,又或者说优化分为两大层面:网络层面(前三步)和浏览器端层面(后两步)
网络层面 :
从dns下手,优化手段有:浏览器 DNS 缓存和 DNS prefetch;从tcp连接下手,优化手段有:长连接、预连接、接入 SPDY 协议。从发起 HTTP 请求下手,优化手段有:减少请求次数和减小请求体积
浏览器端层面:
这部分涉及资源加载优化、服务端渲染、浏览器缓存机制的利用、DOM 树的构建、网页排版和渲染过程、回流与重绘的考量、DOM 操作的合理规避等等