当前位置: 首页 > news >正文

简述 html 页面渲染过程

整个渲染过程其实就是将URL对应的各种资源,通过浏览器渲染引擎的解析,输出可视化的图像。

基本概念

  • HTML解释器:解释HTML语言的解释器,本质是将HTML文本解释成DOM树(文档对象模型)。
  • CSS解释器:解释样式表的解释器,其作用是将DOM中的各个元素对象加上样式信息,从而为计算最后结果的布局提供依据。
  • 布局:将DOM和css样式信息结合起来,计算它们的大小位置等布局信息,形成一个能够表示这所有信息的内部表示模型即渲染树。
  • JavaScript引擎:JavaScript可以修改网页的内容,也能修改CSS的信息,JavaScript引擎解释JavaScript代码并把代码的逻辑和对DOM和CSS的改动信息应用到布局中去,从而改变渲染的结果。

基本过程

  • 1.解析HTML文件,创建DOM树

浏览器解析html源码,然后创建一个 DOM树。并行请求 css/image/js在DOM树中,每一个HTML标签都有一个对应的节点,并且每一个文本也都会有一个对应的文本节点。DOM树的根节点就是 documentElement,对应的是html标签。

  • 2.解析CSS,形成CSS对象模型

浏览器解析CSS代码,计算出最终的样式数据。构建CSSOM树。对CSS代码中非法的语法它会直接忽略掉。解析CSS的时候会按照如下顺序来定义优先级:

浏览器默认设置 < 用户设置 < 外链样式 < 内联样式 < html中的style。

  • 3.将CSS与DOM合并,构建渲染树(renderingtree)

DOM Tree + CSSOM –> 渲染树(rendering tree)。渲染树和DOM树有点像,但是是有区别的。DOM树完全和html标签一一对应,但是渲染树会忽略掉不需要渲染的元素,比如head、display:none的元素等。而且一大段文本中的每一个行在渲染树中都是独立的一个节点。渲染树中的每一个节点都存储有对应的css属性。

  • 4.布局和绘制

一旦渲染树创建好了,浏览器就可以根据渲染树直接把页面绘制到屏幕上。

以上四个步骤并不是一次性顺序完成的。如果DOM或者CSSOM被修改,以上过程会被重复执行。实际上,CSS和JavaScript往往会多次修改DOM或者CSSOM。

Repaint(重绘)

重绘是改变不影响元素在网页中的位置的元素样式时,譬如background-color(背景色), border-color(边框色),visibility(可见性),浏览器会根据元素的新属性重新绘制一次(这就是重绘,或者说重新构造样式),使元素呈现新的外观。

重绘不会带来重新布局,所以并不一定伴随重排。

Reflow(重排)

渲染对象在创建完成并添加到渲染树时,并不包含位置和大小信息。计算这些值的过程称为布局或重排。

"重绘"不一定需要"重排",比如改变某个网页元素的颜色,就只会触发"重绘",不会触发"重排",因为布局没有改变。

但是,"重排"必然导致"重绘",比如改变一个网页元素的位置,就会同时触发"重排"和"重绘",因为布局改变了。

引申问题:浏览器如何优化渲染?

  • 将多次改变样式属性的操作合并成一次操作
  • 将需要多次重排的元素,position属性设为absolute或fixed,这样此元素就脱离了文档流,它的变化不会影响到其他元素。例如有动画效果的元素就最好设置为绝对定位。
  • 由于display属性为none的元素不在渲染树中,对隐藏的元素操作不会引发其他元素的重排。如果要对一个元素进行复杂的操作时,可以先隐藏它,操作完成后再显示。这样只在隐藏和显示时触发2次重排。
http://www.jsqmd.com/news/1250153/

相关文章:

  • AI推荐系统面临的数据投毒与幻觉陷阱挑战
  • 虚拟调试网络(VDN)架构解析与TI Target Server实战指南
  • 成都温江区除甲醛深度对比测评|本地靠谱除甲醛公司怎么选?看完少走弯路 - 专注室内空气检测治理
  • 2026西宁黄金回收白银回收铂金回收工商备案可查全城上门回收旧金老店联系方式推荐
  • TMS320R281x DSP核心通信外设(eCAN/McBSP/SCI/SPI)配置与避坑指南
  • [测试技术] Pytest 入门与实战:fixture、参数化、标记与并行执行
  • AI模型生命周期管理:从临终关怀到知识传承
  • 做知识付费/有声书用什么配音软件?2026年长文本TTS批量生成实测
  • 2026天然健康零食品牌排行实力盘点与合规选型全指南:优质服务商甄选及避坑FAQ - U渠道
  • 【养老照护微项目管理实务连载】4.1 规划进度管理
  • 国产入门学生卡片相机选购指南:对比科美锐(komery)、松典、彩族、爱国者
  • 上海黄金回收全渠道甄选攻略,专业透明变现渠道这样挑选 - 日常比对手册
  • ESXi 7.0U3D升级后HP iLO插件不兼容完整处理方案
  • 携手阿里云全国总经销,解锁企业数字化转型新动能
  • 远程协助下载安装教程 远程协助软件有哪些
  • 工业数据中心追求长效无间断稳定运行,一体化连通配电监测服务商有哪些?结合运行风险与扩容逻辑开展选型评估
  • 使用 C# 实现 MAPPO(Multi-Agent PPO)算法适合工业场景的工程化部署(与 PLC、MES、Unity 仿真等集成友好)
  • 深入解析TMS320F281x DSP系统控制模块:时钟、看门狗与低功耗实战
  • 【ModelArts】ECS部署后远程登陆失败:无法连接到远程主机,请检查主机网络与端口是否正确
  • 高密度UPS主流厂商具体型号选型深度解析
  • 2026上海黄金回收红黑榜出炉,实测筛选优质正规渠道 - 日常比对手册
  • 2026上海黄金回收深度实测:对比4类变现渠道,靠谱方式已选出 - 日常比对手册
  • 嵌入式开发效率革命:TI DRA7xx SoC的Peripheral Boot与DFU高速调试实战
  • 【更新2024年】2000-2024年各地级市PM2.5年均浓度数据
  • AI Coding 零基础实战教程|第五部分:完整项目案例实操
  • 嵌入式内存保护:ECC/EDC原理、TDAxx配置与避坑指南
  • 主流在线学习平台AI功能深度测评与选择指南
  • 阿里禁用Claude Code背后,AI工具安全已成2026选型硬门槛
  • SDE与AI方向留学生必看:北美硅谷求职的岗位窗口与内推节奏详解 - Matthewmx
  • ESXi嵌套虚拟化Windows卡顿完整解决方案:GPU直通优化与嵌套底层开销说明