浏览器渲染原理和流程

浏览器页面渲染原理深度解析(附完整流程图解) 现代浏览器通过多线程协作和流水线优化实现了高效渲染,关键点在于:解析阶段的预加载优化分层机制的局部更新策略GPU加速的合成处理异步化的任务调度理解这些原理有助于开发者:编写高性能的前端代码合理使用硬件加速避免常见的性能陷阱制定有效的优化策略。 阅读详情

今天碰到一个问题,要谈一下浏览器的渲染过程。于是今天去学习了一下,在此做了总结。

浏览器的内部都有一个叫做渲染引擎的东西,负责渲染呈现网页的内容,不同的浏览器有不同的渲染引擎。一般情况下,渲染引擎可以显示HTML,CSS,JS,XML和一些媒体数据,像一些WORD,PDF之类的也可以用一些专用插件渲染。

基本流程

1、渲染引擎通过网络获得文档的内容

2、解析HTML,构成DOM树

3、解析CSS,构成CSS规则树

4、将DOM树和CSS规则树合并起来形成Render树

5、Render树进行布局(layout),计算每个节点在屏幕中的位置

6、绘制,按照计算的规则将内容绘制到屏幕上

7、reflow(回流),当浏览器的某些节点发生变化影响到了布局时,就会倒回去重新渲染。例如:元素的显示与隐藏,折叠菜单等引起了页面上元素的大小,位置,内外边距等。回流会从文档的根节点html标签开始,向下依次计算所有节点的大小和位置,引起部分或整个页面的重新渲染。

8、repaint(重绘),当某些元素发生像颜色等一些不会影响布局的变化时,会触发重绘,此时元素的大小和位置不会发生变化。

 

注意:

1、display:none;该元素以及它的所有后代元素都会隐藏,会把元素从DOM树中删除,其他元素会立马占据它的位置,引起了布局的变化是,所以会触发回流。

2、visibility:hidden;单纯的将元素不显示,但元素位置仍占据着,类似于“透明”,会引起重绘。

3、visibility具有继承性,给父元素设置visibility:hidden;子元素也会继承这个属性。但是如果再给子元素设置visibility:visible,则子元素又会显示出来。

4、visibility: hidden不会影响计数器的计数。例如:在ol中,visibility:hidden;的 li 仍然占据着有序列表的序号,而display:none:不会。

html,css,javascript底层渲染原理与流程?浏览器的渲染原理,浏览器进程,网络进程和渲染进程如何工作? 浏览器的渲染过程是一个复杂的过程,因此如何把复杂的东西简单阐述明白,是一件技术活。首先,渲染过程我们分为两个阶段来理解: 导航过程和页面解析过程。 一、导航过程: 此过程有三个进程负责,浏览器进程,网络进程和渲染进程,开始了解导航过程之前,有必要先认识下面三个进程: 浏览器进程:负责用户交互,子进程管理和文件存储等功能(三兄弟的老大哥) 网络进程:负责网络请求,输入url之后真正负责网络请求的地方,请求完之后负责提供数据给浏览器进程和渲染进程; 渲染进程:负责下载完成的html,css,js,图片等资源 阅读详情

相关推荐

达梦--利用存储过程与定时任务实现数据自动迁移

本文详细介绍了在达梦数据库中如何结合存储过程与定时任务实现数据自动迁移。通过一个电商订单归档的实战案例,阐述了从设计表结构、编写具备异常处理和幂等性的存储过程,到配置DBMS_SCHEDULER定时任务的全流程。该方法能有效替代手动脚本,确保数据同步任务的稳定、准确与自动化执行,适用于报表准备、数据备份等多种场景。

weixin_29261711的博客 430

浏览器渲染原理及流程

浏览器渲染原理及流程 原文出处及转载信说明息见文内详细,如有侵权,请私聊我或评论,联系我删除。

sjhcake的博客 1万+

可调电源的电路设计

可调电源在电路调试中经常用到,可调电源分为两种2-5v(非0点可调)和0-5v(低至0点可调)可调两种。 对于第一种非0点电压的可调范围,其主要是由于开关电源或LDO芯片输出的最小电压为一个固定电压值,非0范围。因此通过调节开关电源或LDO端的反馈电阻的设计模型,其电压可调范围都与芯片的参考电压有关。 基于开关电源的可调电压设计电路 因芯片U2的输出参考电压VSENSE管脚为1.22v。因此,通过调节可调电阻R8的数值,其芯片输出的最低电压一定不小于1.22v。当然此种方案是手动可调输出电压的设计,如

weixin_42257266的博客 9734

浏览器渲染页面的原理及过程

浏览器将域名通过网络通信从服务器拿到html文件后,如何渲染页面呢? 1.根据html文件构建DOM树和CSSOM树。构建DOM树期间,如果遇到JS,阻塞DOM树及CSSOM树的构建,优先加载JS文件,加载完毕,再继续构建DOM树及CSSOM树。 2.构建渲染树(Render Tree)。 3.页面的重绘(repaint)与重排(reflow,也有称回流)。页面渲染完成后,若JS操作了DOM节点,根据JS对DOM操作动作的大小,浏览器对页面进行重绘或是重排。 ...

HelloWorldLJY的博客 5387

使用SSE流式输出(Javaweb前后端实战)

SSE(Server-Sent Events)是一种在Web应用中实现单向实时通信的技术。通过SSE,服务器可以主动向客户端发送更新,而无需客户端不断发起请求。这对于需要实时更新的应用场景(如聊天应用、实时数据监控等)非常有用。(服务端单向传输客户端,长连接)

记得开心一点嘛的博客 1万+

告别NEDC!手把手教你将CLTC/WLTP等最新工况文件导入AVL Cruise(附资源包)

本文详细指导如何将CLTC、WLTP等最新工况文件导入AVL Cruise软件,替代传统的NEDC工况。从资源获取、文件预处理到分步导入指南,再到常见问题排查,帮助工程师高效完成汽车仿真性能评估。附赠全球主流工况文件资源包,助力精准仿真分析。

weixin_30374009的博客 461

图解浏览器渲染原理及流程

本文约8500字,预计阅读需要 30分钟。今天来分享一下浏览器的渲染原理及流程。前言 先来看看 Chrome 浏览器的多进程架构:通常,我们打包出来的 HTML、CSS、JavaScript 等文件,经过浏览器运行之后就会显示出页面,这个过程就是浏览器的渲染进程来操作实现的,渲染进程的主要任务就是将静态资源转化为可视化界面:对于中间的浏览器,它就是一个黑盒,下面就来看看这个黑盒是如何将静态资...

前端开发博客 4116

RK3566 Android11默认客户Launcher修改

【代码】RK3566 Android11默认客户Launcher修改。

Android系统开发笔记 1723

浏览器工作原理--渲染流程:HTML,CSS和JavaScript是如何变成页面的?

一、渲染流水线 (1)由于渲染机制过于复杂,所以渲染模块在执行过程中会被划分为很多子阶段,输入的 HTML 经过这些子阶段,最后输出像素。我们把这样的一个处理流程叫做渲染流水线。 (2)按照渲染的时间顺序,流水线可分为如下几个子阶段:构建 DOM 树、样式计算、布局阶段、分层、绘制、分块、光栅化和合成。 二、构建DOM树 (1)原因:览器无法直接理解和使用 HTML,所以需要将 HTML 转换为浏览器能够理解的结构——DOM 树。 (2)DOM树的构建过程 构建 DOM 树的输入内容是.

xuan的博客 1664

2024年上半年试题二:论性能测试方法及其应用

2025年1月,我以系统分析师的身份参与了公司OA系统的开发与建设。该系统包含的功能有打卡签到、公文流转、工资查询等。我们吸取了之前由于系统使用人数激增暴露出的短时间卡顿等问题,所以在本次开发中,我们非常重视系统的性能测试。通过自动化的测试工具模拟多种正常、峰值及异常负载条件对系统的各项性能指标进行测试。性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样,常见的负载测试和压力测试都属于性能测试。

银帅 548

软件可靠性测试与评价

本文系统介绍了软件可靠性工程的核心内容,包括可靠性概念、模型分类、测试方法和评价体系。重点解析了可靠性测试的三大步骤:定义运行剖面、设计测试用例和实施测试收集数据,并以智能安防系统为例说明具体应用。可靠性评价需结合业务场景,通过量化指标(MTBF、失效率等)和模型预测持续优化系统。文章强调可靠性需贯穿软件全生命周期,通过闭环反馈实现持续改进,为关键系统提供质量保障。

moton2017的博客 2050

浏览器工作原理05 [#] 渲染流程(上):HTML、CSS和JavaScript是如何变成页面的

从图中可以看出,本节内容我们介绍了渲染流程的前三个阶段:DOM生成、样式计算和布局。浏览器不能直接理解HTML数据,所以第一步需要将其转换为浏览器能够理解的DOM树结构;生成DOM树后,还需要根据CSS样式表,来计算出DOM树所有节点的样式;最后计算DOM元素的布局信息,使其都保存在布局树中。

qq_44376306的博客 1329

匹配博弈双边选择算法

刚学图论匹配方面的一些知识,记录下来。

ymengm的博客 2435

浏览器工作原理和实践——渲染流程

HTML、CSS和JavaScript变成页面的流程1.构建 DOM 树2.样式计算2.1 把 CSS 转换为浏览器能够理解的结构2.2 转换样式表中的属性值,使其标准化2.3 计算出 DOM 树中每个节点的具体样式3.布局阶段3.1 创建布局树3.2 布局计算4.分层5.图层绘制6.光栅化7.合成和显示8.渲染流水线大总结9.相关概念(“重排”“重绘”和“合成”)9.1 更新了元素的几何属性(重排)9.2 更新元素的绘制属性(重绘)9.3 直接合成阶段 HTML、CSS、JavaScript 数据,经过

前端探险家的博客 1100

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Node.js(一) --- 浏览器的基本工作原理,浏览器的组成,渲染的工作原理,性能优化,重绘和回流,浏览器和服务器的交互流程

浏览器的工作原理 一. 浏览器的组成 1. 用户界面:包括地址栏,后退/前进按钮,书签目录等,也就是你所看到的除了用来显示你所请求页面的主窗口之外的其他部分 2. 浏览器引擎:用来查询及操作渲染引擎的接口 3. 渲染引擎(浏览器内核): 用来显示请求的内容,例如,如果请求内容为html,他负责解析html和css,并将解析后的结果显示出来 4. 网络: 用来完成网络调用,...

WjiaoJ的学习 443

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

regex search firefox_前端:浏览器渲染原理及流程,讨论Firefox和Chrome两种渲染引擎...

渲染引擎Firefox、Chrome浏览器分别基于两种渲染引擎构建的,Firefox使用Geoko——Mozilla自主研发的渲染引擎,Chrome使用webkit(Blink)。 渲染主流程渲染引擎首先通过网络获得所请求文档的内容,通常以8K分块的方式完成。下面是渲染引擎在取得内容之后的基本流程: 解析html以构建dom树 -> 构建render树 -> 布局render树 -&g...

weixin_39549312的博客 160

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

浏览器原理 05 # 渲染流程:HTML、CSS和JavaScript,是如何变成页面的?

说明 【浏览器工作原理与实践】专栏学习笔记 准备工作 渲染流程示意图 下图的 HTML、CSS、JavaScript 数据,这些数据经过中间渲染模块的处理,最终输出为屏幕上的像素。 渲染流水线示意图 由于渲染机制过于复杂,所以渲染模块在执行过程中会被划分为很多子阶段,输入的 HTML 经过这些子阶段,最后输出像素。我们把这样的一个处理流程叫做渲染流水线。 按照渲染的时间顺序,流水线可分为如下几个子阶段: 1、构建 DOM 树 2、样式计算 3、布局阶段 4、分层 5、绘制 6、分块 7、光栅化

学习前端这门手艺,栈底到栈顶依次是:浏览器架构、Web 网络、事件循环机制、JavaScript 核心、V8 的内存管理、浏览器的渲染流程、Web 安全、CSS、React、Vue、Node、构建工具链等 1206

浏览器工作原理和实践——渲染流程,美团最爱考的前端面试题

前端面试题汇总前端面试题是我面试过程中遇到的面试题,每一次面试后我都会复盘总结。

2401_84094868的博客 1127

浏览器工作原理06 [#]渲染流程(下):HTML、CSS和JavaScript是如何变成页面的

好了,我们现在已经分析完了整个渲染流程,从HTML到DOM、样式计算、布局、图层、绘制、光栅化、合成和显示。结合上图,一个完整的渲染流程大致可总结为如下渲染进程将HTML内容转换为能够读懂的DOM树结构。渲染引擎将CSS样式表转化为浏览器可以理解的styleSheets,计算出DOM节点的样式。创建布局树,并计算元素的布局信息。对布局树进行分层,并生成分层树。为每个图层生成绘制列表,并将其提交到合成线程。合成线程将图层分成图块,并在光栅化线程池中将图块转换成位图。

qq_44376306的博客 1316

前端面经-浏览器原理 & 性能优化篇--Event Loop、宏任务 vs 微任务、浏览器渲染流程、回流和重绘、性能优化指标(FCP、TTI、LCP)、浏览器多进程架构、页面生命周期

Event Loop(事件循环)是 JavaScript 引擎中处理同步与异步任务的一种机制。JavaScript 是单线程语言,只能同时处理一个任务,但它通过 Event Loop 机制,使得异步操作(如定时器、网络请求、Promise)可以非阻塞执行,让我们“看起来像是并发”。CSSOM 是将所有样式信息(包含外部样式、内联样式)解析为结构化的对象规则树,供后续渲染逻辑使用。外部样式表(link 标签)内联样式(style标签)行内样式(style属性)JavaScript 动态样式(如。

qq_44643806的博客 1446

浏览器工作原理与实践--渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的

好了,今天正文就到这里,我画了下面这张比较完整的渲染流水线,你可以结合这张图来回顾下今天的内容。渲染流水线图从图中可以看出,本节内容我们介绍了渲染流程的前三个阶段:DOM生成、样式计算和布局。要点可大致总结为如下:浏览器不能直接理解HTML数据,所以第一步需要将其转换为浏览器能够理解的DOM树结构;生成DOM树后,还需要根据CSS样式表,来计算出DOM树所有节点的样式;最后计算DOM元素的布局信息,使其都保存在布局树中。

echohuangshihuxue的博客 1729

2024年最全浏览器工作原理和实践——渲染流程,2024Web前端面试真题精选干货整理

在面试前我花了三个月时间刷了很多大厂面试题,最近做了一个整理并分类,主要内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。HTML5新特性,语义化浏览器的标准模式和怪异模式xhtml和html的区别使用data-的好处meta标签canvasHTML废弃的标签。

2401_84436058的博客 1077

浏览器工作原理-渲染流程:HTML、CSS和JavaScript,是如何变成页面的?

渲染进程讲HTNL内容转换为可读懂的DOM树结构 渲染引擎将 CSS 样式表转化为浏览器可以理解的 styleSheets,计算出 DOM 节点的样式。 创建布局树,并计算元素的布局信息 对布局信息进行分层,并生成分层树 为每个图层生成绘制列表,并将其提交到合成线程 合成线程将图层分成图块,并在光栅化线程池中将图块转换成位图。 合成线程发送绘制图块命令DrawQuad,给浏览器进程 浏览器进程...

qq_43086106的博客 622

浏览器工作原理与实践--渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的

好了,我们现在已经分析完了整个渲染流程,从HTML到DOM、样式计算、布局、图层、绘制、光栅化、合成和显示。下面我用一张图来总结下这整个渲染流程:完整的渲染流水线示意图结合上图,一个完整的渲染流程大致可总结为如下:渲染进程将HTML内容转换为能够读懂的DOM树结构。渲染引擎将CSS样式表转化为浏览器可以理解的styleSheets,计算出DOM节点的样式。创建布局树,并计算元素的布局信息。对布局树进行分层,并生成分层树。为每个图层生成绘制列表,并将其提交到合成线程。

echohuangshihuxue的博客 1437

chrome frame scrolling 不显示_前端:浏览器渲染原理及流程,讨论Firefox和Chrome两种渲染引擎...

渲染引擎Firefox、Chrome浏览器分别基于两种渲染引擎构建的,Firefox使用Geoko——Mozilla自主研发的渲染引擎,Chrome使用webkit(Blink)。 渲染主流程渲染引擎首先通过网络获得所请求文档的内容,通常以8K分块的方式完成。下面是渲染引擎在取得内容之后的基本流程: 解析html以构建dom树 -> 构建render树 -> 布局render树 -&g...

weixin_31961675的博客 191

Web前端最全浏览器工作原理和实践——渲染流程(3),2024年最新面试常用

如果你已经下定决心要转行做编程行业,在最开始的时候就要对自己的学习有一个基本的规划,还要对这个行业的技术需求有一个基本的了解。有一个已就业为目的的学习目标,然后为之努力,坚持到底。如果你有幸看到这篇文章,希望对你有所帮助,祝你转行成功。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

2301_79985012的博客 935
上一篇: Cookie学习记录
下一篇: TCP协议三次握手与四次挥手
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值