美文网首页程序员让前端飞
「二」浏览器的渲染流程及组成【必会!】

「二」浏览器的渲染流程及组成【必会!】

作者: 废柴码农 | 来源:发表于2020-01-03 17:21 被阅读0次

我们第一章讲了浏览器的组成原理,如果没有看到文章的话记得返回去看第一篇,在讲渲染流程之前先放上一篇文章用到的图:

image.png
上图是浏览器的主要组成部分,而渲染引擎是浏览器中的重要组成部分,其中图中的rendering Engine就是我们今天要讲的渲染引擎,首先了解下渲染引擎的工作流程

渲染引擎工作流程

image.png

(webkit渲染引擎流程)

关键渲染路径关键渲染路径是指浏览器从最初接收请求来的HTML、CSS、javascript等资源,然后解析、构建树、渲染布局、绘制,最后呈现给客户能看到的界面这整个过程。所以浏览器的渲染过程主要包括以下几步:

1.解析HTML生成DOM树。
2.解析CSS生成CSSOM规则树。
3.将DOM树与CSSOM规则树合并在一起生成渲染树。
4.遍历渲染树开始布局,计算每个节点的位置大小信息。
5.将渲染树每个节点绘制到屏幕。

构建DOM树

当浏览器接收到服务器响应来的HTML文档后,会遍历文档节点,生成DOM树。需要注意的是,DOM树的生成过程中可能会被CSS和JS的加载执行阻塞。渲染阻塞问题下文会讲。

构建CSSOM规则树

浏览器解析CSS文件并生成CSS规则树,每个CSS文件都被分析成一个StyleSheet对象,每个对象都包含CSS规则。CSS规则对象包含对应于CSS语法的选择器和声明对象以及其他对象。

构建渲染树

通过DOM树和CSS规则树我们便可以构建渲染树。浏览器会先从DOM树的根节点开始遍历每个可见节点。对每个可见节点,找到其适配的CSS样式规则并应用。

渲染树构建完成后,每个节点都是可见节点并且都含有其内容和对应规则的样式。这也是渲染树与DOM树的最大区别所在。渲染树是用于显示,那些不可见的元素当然就不会在这棵树中出现了,譬如。除此之外,display等于none的也不会被显示在这棵树里头,但是visibility等于hidden的元素是会显示在这棵树里头的。

渲染树布局

布局阶段会从渲染树的根节点开始遍历,然后确定每个节点对象在页面上的确切大小与位置,布局阶段的输出是一个盒子模型,它会精确地捕获每个元素在屏幕内的确切位置与大小。

渲染树绘制

在绘制阶段,遍历渲染树,调用渲染器的paint()方法在屏幕上显示其内容。渲染树的绘制工作是由浏览器的UI后端组件完成的。

参考文献:
http://chuquan.me/2018/01/21/browser-architecture-overview/
https://juejin.im/post/5a8e242c5188257a6b060000

相关文章

  • 「二」浏览器的渲染流程及组成【必会!】

    我们第一章讲了浏览器的组成原理,如果没有看到文章的话记得返回去看第一篇,在讲渲染流程之前先放上一篇文章用到的图: ...

  • 浏览器渲染原理

    浏览器组成 主要包括用户界面、浏览器引擎、渲染引擎、网络、Js解释器、UI后端、数据存储。 渲染流程 解析HTML...

  • CSS 会阻塞 DOM 解析吗?

    浏览器的渲染 浏览器的渲染流程如下: 图:WebKit 主流程 图:Mozilla 的 Gecko 呈现引擎主流程...

  • 浅谈 GPU 及 “App渲染流程”

    浅谈 GPU 及 “App渲染流程”浅谈 GPU 及 “App渲染流程”

  • 000_开篇词

    宏观视角下的浏览器 Chrome架构 TCP协议 HTTP请求流程 导航流程 渲染流程(上) 渲染流程(下) 浏览...

  • 前端运行机制--页面渲染流程

    浏览器渲染页面的原理及流程 浏览器将域名通过网络通信从服务器拿到html文件后,如何渲染页面呢? 1.根据html...

  • web前端面试题@十三(浏览器渲染页面的原理及流程、call,a

    一、浏览器渲染页面的原理及流程 浏览器将域名通过网络通信从服务器拿到html文件后,如何渲染页面呢? 1.根据ht...

  • 前端知识结构

    前端不止:Web性能优化 – 关键渲染路径以及优化策略前端必会!四步带你吃透浏览器渲染基本原理 浏览器备注浏览器事...

  • js1

    一.浏览器组成: 1.shell 2.内核: •渲染引擎(语法规则和渲染) •JS引擎 •其他模块 二.JS的特点...

  • 浏览器渲染原理及流程

    浏览器的主要构成 1.用户界面2.浏览器引擎 - 用来查询及操作渲染引擎的接口3.渲染引擎 - 用来显示请求的内容...

网友评论

    本文标题:「二」浏览器的渲染流程及组成【必会!】

    本文链接:https://www.haomeiwen.com/subject/coazoctx.html