美文网首页
一眼看穿浏览器渲染全过程

一眼看穿浏览器渲染全过程

作者: 一郭鲜 | 来源:发表于2019-12-22 11:08 被阅读0次

前段时间有很多同学通过不同渠道问我关于浏览器渲染的问题。今天,小郭在这里用简单的一张图概括出浏览器渲染的全过程。

废话不多说,直接上图

浏览器流程图.png
  1. 渲染进程收到HTML 文档后,遍历文档节点并转换为能够读懂的DOM 树结构;
  2. 渲染引擎将 CSS 样式表转化为浏览器可以理解的styleSheets对象,每一个对象都包含CSS规则。根据CSS规则对象计算出 DOM 节点的样式;
  3. 创建渲染树,并计算元素的布局信息。布局阶段会从渲染树的根节点开始遍历,然后确定每个节点对象在页面上的确切大小与位置,布局阶段的输出是一个盒子模型,它会精确地捕获每个元素在屏幕内的确切位置与大小。对渲染树进行分层,并生成分层树。
  4. 为每个图层生成绘制列表,并将其提交到合成线程。合成线程将图层分成图块,并在光栅化线程池中将图块转换成位图。合成线程发送绘制图块命令DrawQuad给浏览器进程。
  5. 浏览器进程根据 DrawQuad 消息生成页面,并显示到显示器上。

写到这里一定有很不少人好奇,为什么我们写页面时要把script标签放在页面最低部呢?

别着急,答案就在下面。

这就是前端小伙伴经常遇到的一个问题:渲染阻塞

当浏览器遇到一个 script 标记时,DOM 构建将暂停,直至脚本完成执行,然后继续构建DOM。每次去执行JavaScript脚本都会严重地阻塞DOM树的构建,如果JavaScript脚本还操作了CSSOM,而正好这个CSSOM还没有下载和构建,浏览器甚至会延迟脚本执行和构建DOM,直至完成其CSSOM的下载和构建。

所以,script 标签的位置很重要。实际使用时,可以遵循下面两个原则:

CSS 优先:引入顺序上,CSS 资源先于 JavaScript 资源;
JS置后:我们通常把JS代码放到页面底部,且JavaScript 应尽量少影响 DOM 的构建。

现在终于知道我们使用script的时候经常将它置于页面最底部的原因了。

另外,这一点也是经常在前端面试题中看到它的身影。

到这里浏览器渲染的全部流程已经讲述完毕,如果还有疑问可以在下方留言,大家一起讨论。

有任何前端问题可以私信我,想了解更多前端知识关注公众号“一郭鲜”,小郭等着你的到来

相关文章

  • 一眼看穿浏览器渲染全过程

    前段时间有很多同学通过不同渠道问我关于浏览器渲染的问题。今天,小郭在这里用简单的一张图概括出浏览器渲染的全过程。 ...

  • 2017前端面试题之综合篇(1)

    1 . 浏览器如何渲染? 浏览器的渲染原理简介 专题:浏览器:渲染重绘、重排两三事 浏览器加载和渲染HTML的顺序...

  • 略知一二之浏览器渲染原理

    浏览器渲染原理 推荐相关阅读文章 浏览器页面渲染机制,你真的弄懂了吗? 关键渲染路径 深入浅出浏览器渲染原理 [译...

  • css知识总结

    一、浏览器渲染原理 要了解浏览器渲染页面的过程,首先得知道一个名词——关键渲染路径。关键渲染路径是指浏览器从最初接...

  • 浏览器渲染原理与过程

    浏览器如何渲染网页 要了解浏览器渲染页面的过程,首先得知道一个名词——关键渲染路径。关键渲染路径是指浏览器从最初接...

  • 浏览器渲染原理与过程【转】

    浏览器如何渲染网页 要了解浏览器渲染页面的过程,首先得知道一个名词——关键渲染路径。关键渲染路径是指浏览器从最初接...

  • 小皆学前端—主流浏览器的内核浅析

    浏览器内核,包括浏览器渲染引擎和JS解析引擎。负责对网页的语法进行解释并渲染(渲染再我另外一篇文章浏览器的渲染原理...

  • 前端性能优化-渲染优化

    一、浏览器渲染原理和关键渲染路径 浏览器渲染原理:读取html,css文本,构建DOM树。(DOM ,CSSOM)...

  • 前端工程师必备:从浏览器的渲染到性能优化

    浏览器渲染 1.浏览器渲染图解 [来自google开发者文档] 浏览器渲染页面主要经历了下面的步骤: 1.处理 H...

  • 浏览器渲染浅析

    1.浏览器渲染主要流程 不同的浏览器内核不同,所以不同浏览器的渲染过程也不太一样。这里我们看下WebKit 的渲染...

网友评论

      本文标题:一眼看穿浏览器渲染全过程

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