浏览器是如何渲染一个页面的?

2023-06-30 15:54:1109:40 200
声音简介

在浏览器中输入网址,获取到html文件流后,浏览器开始解析渲染页面。

首先了解一下两个概念。

DOM:Document Object Model,文档对象模型。用来描述了HTML文档中标签间的相互关联性。

CSSOM:CSS Object Model,CSS对象模型。用来描述CSS文档属性。

渲染页面呢,主要分为以下五大步骤

根据HTML解析出DOM树。

根据获取到的外部资源,CSS文件。生成CSS规则树。(外部资源也包括 JavaScript文件,下面介绍的不包括JS,包括JS的见下面的问题一)

结合DOM树和CSS规则树,生成渲染树

根据渲染树计算每一个节点的信息(布局)

开始repaint重绘,根据计算好的信息绘制页面

根据HTML解析DOM树

根据HTML的内容,将标签按照结构解析成为DOM树,DOM树解析的过程是一个深度优先遍历。会先构建当前节点的所有子节点,再构建下一个兄弟节点。

最常见的几种节点有:文档节点、元素节点、文本节点、属性节点、注释节点。

在读取HTML文档,构建DOM树的过程中,若遇到script标签,则DOM树的构建会暂停,直至脚本执行完毕。

根据CSS解析生成CSS规则树

解析CSS规则树时JS 执行将暂停,直至CSS规则树就绪。

浏览器在CSS规则树生成之前不会进行渲染。

结合DOM树和CSSOM规则树,生成渲染树

DOM树和CSS规则树全部准备好了以后,浏览器才会开始构建渲染树。

精简 CSS 可以加快CSS规则树的构建,从而加快页面相应速度。

渲染树(Render Tree)由DOM树、CSSOM树合并而成,但并不是必须等DOM树及CSSOM树加载完成后才开始合并构建渲染树。三者的构建并无先后条件,亦非完全独立,而是会有交叉,并行构建。因此会形成一边加载,一边解析,一边渲染的工作现象。

根据渲染树计算每一个节点的信息

布局:通过渲染树中渲染对象的信息,计算出每一个渲染对象的位置和尺寸

回流:在布局完成后,发现了某个部分发生了变化影响了布局,那就需要倒回去重新渲染。某个元素的尺寸发生了变化,则需重新计算渲染树,重新渲染。

根据计算好的信息绘制页面

绘制阶段,系统会遍历呈现树,并调用呈现器的“paint”方法,将呈现器的内容显示在屏幕上。

重绘:某个元素的背景颜色,文字颜色等,不影响元素周围或内部布局的属性,将只会引起浏览器的重绘。



用户评论

表情0/300

郭大爷的

好久没更新了啊

梦啦啦大魔王 回复 @郭大爷的

更新更新

猜你喜欢
争渡读屏|微软 Edge 浏览器专题培训

本课程不要求特别深入的电脑基础,只要初步了解windows系统,能基本使用读屏软件即可。

by:全无障碍

后期渲染作品

各种赛道后期制作的试音,见证自己的进步!

by:喵咪呜大人

如何学习室内设计VRay渲染绝招

《如何学习室内设计VRay渲染绝招》由澳美轩家教育出品,通过澳美轩家装饰、校园文化建设、教育创始人赵文来总经理首度亲授VRay渲染项目实战经验!20年成功创业经...

by:澳美轩家装修

渲染晴-冬臧播客研修专辑

新奇有趣特色精华的观点与角度,去探讨社会热点,吐槽那些不为人知的种种现象大家好,欢迎订阅渲染晴的冬臧,这是一档渲染晴开启的冬令营的特训盛宴在本档节目中,你将会在...

by:渲染晴

用音乐渲染你的生活态度

褪去岁月浮华的民谣;深入骨髓的摇滚;亦或是在慵懒时光邂逅的复古爵士,总有一首打动你心,直指灵魂。每一首歌曲都是Michelle亲手pick的心头好~

by:英语怎么说

花树的故事浏览记录

看来的听来的,一个又一个未完成的故事去遐想吧,如果你听上了劲儿,很抱歉这里没有续集,原因嘛,版权咯

by:蓝色的花树

免费|渲染瑾年|古代言情&古言

稳定日更5集,不定期爆更,AI主播良心又迷人,订阅追更不迷路!【内容简介】宫宴之上,一席月色长袍的他器宇轩昂,一柄银枪舞得疏狂潇洒。帝问:“楦容将军...

by:盛世阅读de电子书

卡游超宇宙X档案卡片浏览

每周五、六、日及节假日更新四集。超宇宙奥特英雄X档案第一部里面每张卡片的浏览。(含一个特别卡片浏览)!

by:全新特利迦奥特曼