程序员鸡皮
文章 分类 评论
323 4 39

站点介绍

一名PHP全栈程序员的日常......

网页被解析的过程是怎么样的?

abzzp 2026-03-19 398 0条评论 前端 前端

首页 / 正文
本站是作为记录一名北漂程序员编程学习以及日常的博客,欢迎添加微信BmzhbjzhB咨询交流,喜欢吃红薯或粉条的也可以私聊我......

发布于2024-07-04

服务器下载资源的过程就是先下载index.html,当遇到Javascript,css的时候再下载他们。

浏览器的内核是什么?

浏览器内核指的就说浏览器的排版引擎,排版引擎的英文全称:layout engine,也叫做浏览器引擎browser engine,页面渲染引擎rendering engine或样板引擎。也就是说当一个网页下载下来后就是由渲染引擎帮助解析的。

浏览器的内核有哪些?

浏览器和对应的浏览器内核示意图
常见的浏览器内核有:Trident,Gecko,Presto,Webkit,Blink
Trident中文名称叫三叉戟,是IE和早期的360安全浏览器,早期搜狗浏览器早期百度浏览器,早期的UC浏览器现在已经废弃。
Gecko壁虎浏览器内核,是火狐浏览器内核Mozilla Firefox。
Presto浏览器是由Opera Software开发的浏览器排版引擎,它是世界公认最快的渲染速度的引擎,但是在13年之后也加入了谷歌阵营Opera弃用了Presto。
Webkit是苹果浏览器Safari的内核,是好多移动端浏览器的内核包括苹果和安卓。
Blink内核其实是由于Webkit内核改版而来。由于苹果公司开源了Webkit浏览器内核,谷歌公司发现确实Webkit有他的优势于是借用Webkit的思想开发出了Blink内核的浏览器,后来被大范围使用,现在的Google Chrome谷歌浏览器,Edge浏览器,360极速浏览器,搜狗高速浏览器等好多都是用的Blink内核。

渲染引擎如何解析页面?

渲染引擎在拿到一个页面后,如何解析整个页面并且最总呈现在网页上?

渲染引擎解析页面示意图

渲染页面的详细流程是什么样的?

渲染页面的详细流程图

解析一:HTML解析

因为默认情况下服务器会给浏览器返回index.html文件,所以解析HTML是所有步骤的开始:解析HTML,会构建DOM TreeDOM树。

HTML解析图

解析二:生成CSS规则

在解析的过程中,如果遇到CSS的link元素,那么会由浏览器负责下载对应的css文件。这里我们下载css文件是不会影响DOM书的解析的。
浏览器下载完成CSS文件后,就会对CSS文件进行解析,解析出对应的规则树。我们可以称之为CSSOM英文全称是CSS Object Model,也叫CSS对象模型。
CSS对象模型图

解析三 构建Render Tree

当有了DOM Tree和CSSOM Tree后,就可以两个结合起来构建Render Tree渲染树了。
Render tree构建示意图
注意两点:
1.link元素不会阻塞DOM Tree的构建过程,但是会阻塞Render Tree的构建过程。这里因为Render Tree在构建的时候,需要对应的CSSOM TreeCSS对象模型。
2.Render Tree和DOM Tree并不是一一对应的关系,就比如对于display为none的元素不会出现在render tree中。

解析四 布局layout和绘制Paint

第四步是在渲染树Render Tree上运行布局Layout以计算每个节点的几何体,渲染时会表示显示哪些节点以及其他样式,但是不显示每个节点的尺寸位置等信息,布局是确定呈现书中所有节点的宽度高度和位置信息。
第五步是将每个节点绘制Paint到屏幕上,在绘制阶段,浏览器将布局阶段计算的每个frame转为实际的像素点。包括将元素的可见部分进行绘制, 比如文本,颜色,边框,阴影,替换元素比如img。

布局layout解析和绘制示意图
Match selectors:浏览器遍历CSSOMCSS对象模型,将选择器与DOM树中的元素匹配,这个过程决定了CSS规则应用于哪些DOM元素
Compute Style:在选择器匹配后,浏览器计算每个元素的最终样式,这包括计算具体的样式值,处理继承的样式和解析因层叠产生的任何冲突。
Construct frames:这通常是指生成布局树,它是渲染树的一部分,仅包含要布局和绘制的元素。这一步骤涉及确定文档的结构层次和包含快。布局树和渲染树是有微小的差异,布局树是渲染树的子集,不包含渲染树中元素的颜色,背景,阴影等信息。

感谢大家观看

评论(0)

文章目录

最新评论

  • 姓名测试打分

    文章不错支持一下,非常喜欢

  • 免费算命

    文章不错非常喜欢,支持一下

  • 凡梦星尘

    友链已经添加好了,欢迎回访哈

  • 生辰八字算命

    文章不错支持一下,非常喜欢

  • 免费算命

    文章不错非常喜欢,支持一下

  • 生辰八字算命

    文章不错支持一下,非常喜欢

  • 免费算命

    文章不错非常喜欢,支持一下

  • 茗辰原

    马克吐温的作品就很经典,小时候很爱看

  • 姓名测试打分

    文章不错支持一下,非常喜欢

  • 姓名测试打分

    文章不错非常喜欢,支持

日历

2026年11月

日一二三四五六
1234567
891011121314
15161718192021
22232425262728
2930     

站点公告
本站是作为记录一名北漂程序员编程学习以及日常的博客,欢迎添加微信BmzhbjzhB咨询交流,喜欢吃红薯或粉条的也可以私聊我......
点击小铃铛关闭
配色方案