详解浏览器渲染流程

浏览器主要组件结构 

 1.png

(浏览器主要组件)

渲染引擎——webkit和Gecko

Firefox使用Geoko——Mozilla自主研发的渲染引擎。

Safari和Chrome都使用webkit。Webkit是一款开源渲染引擎,它本来是为linux平台研发的,后来由Apple移植到Mac及Windows上。

本文我主要以webkit渲染引擎来讲解,尽管webkit和Gecko使用的术语稍有不同,他们的主要流程基本相同。

 2.png 

(webkit渲染引擎流程)

关键渲染路径

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

所以浏览器的渲染过程主要包括以下几步:

解析HTML生成DOM树。

解析CSS生成CSSOM规则树。

将DOM树与CSSOM规则树合并在一起生成渲染树。

遍历渲染树开始布局,计算每个节点的位置大小信息。

将渲染树每个节点绘制到屏幕。

构建DOM树

当浏览器接收到服务器响应来的HTML文档后,会遍历文档节点,生成DOM树。

需要注意的是,DOM树的生成过程中可能会被CSS和JS的加载执行阻塞。渲染阻塞问题下文会讲。

构建CSSOM规则树

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

渲染阻塞

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

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

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

当解析html的时候,会把新来的元素插入dom树里面,同时去查找css,然后把对应的样式规则应用到元素上,查找样式表是按照从右到左的顺序去匹配的。

例如: div p {font-size: 16px},会先寻找所有p标签并判断它的父标签是否为div之后才会决定要不要采用这个样式进行渲染)。
所以,我们平时写CSS时,尽量用id和class,千万不要过渡层叠。

构建渲染树

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

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

渲染树布局

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

渲染树绘制

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

reflow与repaint:

根据渲染树布局,计算CSS样式,即每个节点在页面中的大小和位置等几何信息。HTML默认是流式布局的,CSS和js会打破这种布局,改变DOM的外观样式以及大小和位置。这时就要提到两个重要概念:replaint和reflow。

replaint:屏幕的一部分重画,不影响整体布局,比如某个CSS的背景色变了,但元素的几何尺寸和位置不变。
reflow: 意味着元件的几何尺寸变了,我们需要重新验证并计算渲染树。是渲染树的一部分或全部发生了变化。这就是Reflow,或是Layout。

所以我们应该尽量减少reflow和replaint,我想这也是为什么现在很少有用table布局的原因之一。

display:none 会触发 reflow,visibility: hidden属性并不算是不可见属性,它的语义是隐藏元素,但元素仍然占据着布局空间,它会被渲染成一个空框,所以visibility:hidden 只会触发 repaint,因为没有发生位置变化。

有些情况下,比如修改了元素的样式,浏览器并不会立刻 reflow 或 repaint 一次,而是会把这样的操作积攒一批,然后做一次 reflow,这又叫异步 reflow 或增量异步 reflow。
有些情况下,比如 resize 窗口,改变了页面默认的字体等。对于这些操作,浏览器会马上进行 reflow。

小结

本文我们就浏览器渲染流程逐步了解了一遍,相信大家一定都有所新的收获,如果大家对于浏览器渲染流程还有任何疑问,欢迎反馈,我们共同交流,共同学习,共同进步。

相关阅读:

html两秒跳转至其他页面

怎样做出在网页中弹出QQ临时对话框

iframe的去边框和无边框有哪些操作方式

base标签需要如何使用

以上就是详解浏览器渲染流程的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1545837.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 17:31:45
HTML中关于盒模型的总结
下一篇 2025年12月21日 17:32:02

相关推荐

  • 360极速浏览器为什么装不了 装不了原因

    重新下载最新版360浏览器,之后打开c盘找到program files文件夹,右键选择管理员取得所有权,然后选择360安装文件右键以管理员身份运行看看能不能安装,如果还是不行换一个安装目录试试。 以上就是360极速浏览器为什么装不了 装不了原因的详细内容,更多请关注创想鸟其它相关文章!

    2026年9月4日
    000
  • 168.7.1登录管理页面入口 192.168.7.1管理页面进入网址

    要进入192.168.7.1的管理页面,首先确保设备连接到该路由器的网络,然后在浏览器地址栏输入192.168.7.1并回车,接着输入正确的用户名和密码即可登录。1. 确保连接到正确的网络:设备必须通过网线或wi-fi连接到192.168.7.1对应的路由器,若使用移动数据或其他wi-fi则无法访问…

    2026年9月4日
    000
  • yandex浏览器中文版登录 Yandex俄罗斯引擎首页入口网站

    作为俄罗斯最大的科技公司之一,Yandex不仅是该国首屈一指的搜索引擎,更构建了一个庞大而完善的互联网服务生态系统。其推出的Yandex浏览器,与搜索引擎深度融合,为全球用户提供了一个高效、安全且功能丰富的网络入口。 一、Yandex官方入口 1、立即进入“☞☞☞☞点击Yandex国际版搜索引擎:h…

    2026年9月4日
    000
  • 如何设置谷歌浏览器主页 Chrome浏览器个性化配置详细教程

    设置chrome主页按钮:打开设置→外观→开启主页按钮并选择“新标签页”或输入自定义网址;2. 设置启动页:在设置→启动时选择“打开新标签页”“继续上次浏览”或“打开特定网页”;3. 主页是点击主页按钮跳转的页面,启动页是浏览器打开时自动加载的页面,两者功能独立;4. 个性化配置包括更换主题、调整字…

    2026年9月4日
    000
  • 谷歌浏览器标签无法弹出新窗口该怎么办

    当您在使用谷歌浏览器时遇到标签页无法正常弹出新窗口的问题,通常是由于浏览器的某些设置或扩展程序阻止了该行为。本文将为您提供一套清晰的排查和解决方案,通过分步操作指导您检查并修改相关设置,从最常见的弹出式窗口拦截策略,到管理可能引起冲突的扩展程序,最后到重置浏览器配置,旨在帮助您快速定位问题并恢复浏览…

    2026年9月4日
    100
  • chrome浏览器标签太多导致打开卡顿怎么解决

    当谷歌浏览器打开的标签页过多时,系统资源(尤其是内存和CPU)的占用会急剧增加,这常常导致浏览器运行缓慢、响应迟钝甚至出现卡顿现象。本文将为您详细介绍如何有效地管理过多的标签页,并通过优化浏览器设置来提升谷歌浏览器的运行流畅度,帮助您改善浏览体验,确保即使打开多个网页也能保持高效工作。 立即进入“免…

    2026年9月4日
    000
  • 怎么找回谷歌浏览器收藏的网页标签

    当您发现谷歌浏览器中收藏的网页标签(即书签)不见了时,这可能由误操作删除、浏览器同步问题或配置文件损坏等多种原因造成。不必过于担心,因为通常有多种途径可以尝试找回。本文将为您分步介绍几种有效的恢复方法,从最简单的撤销操作到利用浏览器自带的备份文件进行恢复,帮助您一步步操作,从而找回丢失的重要书签。 …

    2026年9月4日
    000
  • 谷歌浏览器标签不显示了怎么设置?Chrome浏览器标签显示/隐藏快捷键

    当您发现谷歌浏览器的标签栏突然消失不见时,最常见的原因是浏览器进入了全屏模式。全屏模式旨在提供无干扰的浏览体验,因此会隐藏包括标签栏、地址栏和工具栏在内的所有界面元素。本文将为您详细解释如何退出全屏模式以恢复标签栏的显示,并提供相应的快捷键和操作步骤,让您轻松解决此问题。 立即进入“免费看电影的软件…

    2026年9月4日
    000
  • 悟空浏览器视频无法播放怎么办_悟空浏览器视频播放故障排除

    先检查悟空浏览器设置中的“页面内播放”是否开启,再排查网络稳定性与缓存问题,最后通过更新或重装浏览器解决兼容性或文件损坏问题,多数视频播放异常可恢复。 悟空浏览器里视频播不了,问题通常出在设置、网络或软件本身。先别急着换浏览器,按下面几步检查一下,基本都能解决。 检查并开启页面内播放功能 很多情况下…

    2026年9月4日
    000
  • 谷歌浏览器标签无法拖动位置没反应怎么设置

    当您发现谷歌浏览器的标签页无法通过拖动来调整位置时,通常是由于系统设置或浏览器本身的某些配置问题所导致的。这种情况在Windows系统中尤为常见,但也可能与其他因素有关。本文将为您提供一套详细的排查与解决方案,从最可能的原因入手,逐步引导您检查并修改相关设置,以恢复标签页正常的拖动功能。 立即进入“…

    2026年9月4日
    100
  • 夸克网盘如何恢复误删文件 夸克网盘回收站机制的应急使用手册

    误删文件后可通过回收站恢复,检查文件恢复服务设置,利用历史版本功能,联系官方客服或使用专业软件找回数据。 立即进入“☞☞☞☞☞点击夸克资源搜索引擎链接☜☜☜☜☜”; 立即进入“☞☞☞☞☞点击夸克资源网APP直达☜☜☜☜☜”; 如果您在使用夸克网盘时误删了重要文件,不必过于惊慌。大多数情况下,被删除的…

    2026年9月4日
    500
  • 谷歌转化代码设置全攻略_谷歌广告转化跟踪代码的配置方法与技巧

    解决谷歌转化代码未触发问题需检查代码安装位置是否正确,确保全局代码位于所有页面标签内,事件代码置于转化发生页面或按钮的事件中;2. 确认代码未被修改或损坏;3. 清除浏览器与网站缓存排除缓存干扰;4. 检查是否存在javascript代码冲突;5. 核实转化规则设置与实际行为一致;6. 耐心等待数据…

    2026年9月4日
    000
  • 如何备份Yandex浏览器 俄罗斯引擎Yandex书签与数据方法

    备份yandex浏览器书签和数据最简单的方法是导出书签为html文件,可通过书签管理器导出并在任意主流浏览器导入;2. 完整数据备份需关闭浏览器后复制用户数据目录(路径为c:users用户名appdatalocalyandexyandexbrowseruser data)到安全位置,恢复时覆盖原文件…

    2026年9月4日
    000
  • Safari阻止跨网站跟踪怎么开_Safari防跟踪功能隐私保护设置

    开启“阻止跨站跟踪”可有效保护Safari隐私,防止广告商跨站追踪;在Mac上进入Safari偏好设置→隐私,勾选该选项并启用“要求网站不要跟踪我”;iPhone则在设置→Safari浏览器中开启“阻止跨网站跟踪”和“欺骗性网站警告”;通过地址栏护盾图标查看隐私报告,了解被拦截的跟踪器数量及来源,确…

    2026年9月4日
    000
  • 美图秀秀在线版官方入口 美图秀秀手机在线修图

    美图秀秀在线版官方入口为https://pc.meitu.com,进入后可使用海报设计、智能抠图、拼图、证件照制作等功能,支持响应式操作与云端同步,具备AI画质修复、去水印、视频优化及超大图片处理技术。 美图秀秀在线版官方入口在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来美图秀秀在线修图…

    2026年9月4日
    100
  • yandex外贸日报入口 yandex俄罗斯外贸日报免登录入口

    Yandex外贸日报入口位于其官网https://yandex.com/,用户可通过首页搜索功能输入行业关键词加“市场分析”等词组查找相关外贸动态报告,并利用地区筛选获取俄罗斯及独联体国家的商业资讯。 1、立即进入“☞☞☞☞点击 yandex外贸日报入口:https://yandex.com/☜☜☜…

    2026年9月4日
    200
  • Yandex引擎搜索服务入口-Yandex引擎地址快速访问路径

    访问yandex搜索服务最直接的方式是输入官网地址yandex.com/,该国际版网址会根据位置或语言设置自动跳转,适合海外用户并支持多语言界面;1. 可将yandex.com添加到浏览器收藏夹以便快速访问;2. 可在浏览器设置中将其设为默认主页,实现打开浏览器即自动加载;3. 可将yandex添加…

    2026年9月4日
    100
  • Yandex引擎官方网站入口-Yandex引擎链接直接进入平台

    yandex官网可通过国际版yandex.com/或俄罗斯版yandex.ru/访问;1. 国际版支持多语言,适合海外用户;2. 俄罗斯版以俄语为主,本地化内容更丰富;3. 登录账户需点击右上角“登录”,输入用户名(或邮箱/手机号)和密码;4. 验证通过后可使用邮箱、云盘、地图等服务;若访问慢可尝试…

    2026年9月4日
    100
  • 360极速浏览器怎么设置兼容模式 设置兼容模式方法

    360极速浏览器怎么设置兼容模式 设置兼容模式方法360极速浏览器怎么设置兼容模式 设置兼容模式方法360极速浏览器怎么设置兼容模式 设置兼容模式方法360极速浏览器怎么设置兼容模式 设置兼容模式方法

    1、找到桌面上的360浏览器图标,双击打开浏览器程序。 2、浏览器首页加载完成后,点击右上角的扩展菜单按钮,展开菜单列表。 3、在扩展菜单中选择“设置”选项,进入浏览器的配置界面。 4、在设置页面中,找到下方的*设置入口并点击,跳转至*设置界面。 5、在*设置界面中,点击页面中部的“内核切换设置”选…

    2026年9月4日 用户投稿
    100
  • Piti插件如何集成高清图库站点_Piti插件集成高清图库站点教程

    通过API、RSS或自定义代理可实现Piti插件对接高清图库。①使用图库API需获取密钥并配置服务信息;②通过RSS订阅导入公开资源,设置更新频率与解析规则;③无标准接口时搭建Node.js代理服务,解析网页数据为JSON供插件调用,提升素材获取效率。 如果您希望在使用Piti插件时能够快速访问和调…

    2026年9月4日
    100

发表回复

登录后才能评论
关注微信