浏览器渲染过程
从键入url到页面显示发生了什么 这个过程可以大致分为两个部分:网络通信和页面渲染。 网络通信 输入url按下回车之后,浏览器会去浏览器缓存中寻找该url的ip;没有的话去系统缓存中找,还是没有的话去路由器缓存中寻找;再没有就去系统host文件中找,还是没有最后只能去请求dns服务器,然后dns给一个ip给浏览器;浏览器根据这个IP地址,向服务器发送HTTP请求。HTTP经过传输层(TCP的三次握手建立连接);网络层(IP协议查询MAC地址);数据链路层(找到对方的MAC地址之后,将数据传送到数据链路层);物理层(传输给服务器);服务器接受数据;服务器响应请求;服务器返回相应的文件(HTML文件等),接下来就是页面渲染 浏览器渲染 处理 HTML 并构建 DOM 树。(如果遇到style节点 则构建css树(这里不会阻塞dom树的构建)) 处理 CSS 构建 CSSOM 树。 将 DOM 与 CSSOM 合并成一个渲染树。 根据渲染树来布局,计算每个节点的位置。 调用 GPU 绘制,合成图层,显示在屏幕上。 在构建 CSSOM 树时,会阻塞渲染,直至 CSSOM 树构建完成。并且构建 CSSOM 树是一个十分消耗性能的过程,所以应该尽量保证层级扁平,减少过度层叠,越是具体的 CSS 选择器,执行速度越慢 浏览器渲染阻塞 当 HTML 解析到 script 标签时,会暂停构建 DOM