当前位置:网站首页>Browser rendering principle and rearrangement and redrawing
Browser rendering principle and rearrangement and redrawing
2022-07-05 16:56:00 【Love to paddle de whale brother ~】
Browser rendering principle
Browser rendering is divided into five stages .
The first stage :HTML analysis --> DOM Trees
Browsers cannot directly understand HTML file , First, analyze it , And in the process of parsing, send various external resource requests for page rendering DOM Trees .
The second stage : CSS analysis --> CSSOM Trees
Similarly, browsers can also directly understand CSS Code , Need to identify and load CSS The code is processed into what you understand CSSOM Trees .
The third stage : Style and structure merge --> Render tree
The browser will DOM Trees and CSSOM Trees are combined to generate rendering trees (:after :before And other pseudo elements will be built to DOM In the tree ).
Render tree features : Contains only the nodes needed to render the web page .
The process of building a rendering tree
- First step : from DOM The root node of the tree starts traversing , Filter out all visible nodes ;
- The second step : Match visible nodes CSSOM Trees ;
The fourth stage : The page layout --> Layout rendering tree
The browser traverses the rendering tree , Write the nested relationship between elements into the document flow box model in the form of box model , And calculate the exact size and location of the elements in the layout process . After the calculation , Write the corresponding information back to the rendering tree to form “ Layout rendering tree ”.
The fifth stage : Page drawing --> Display page
At this stage, the browser finally gets all the information about drawing the page , Convert every node in the rendering tree into visible pixels , Finally, the page will be presented in front of us .
rearrangement
When we modify DOM Width of node 、 High or hidden , The browser needs to recalculate the geometric attributes of nodes , Then the process of plotting the results of the calculation is called rearrangement ( It's also called backflow ).
Browser rearrangement process

Conditions triggering rearrangement
- change DOM Tree structure : The increase or decrease of nodes 、 Mobile, etc
- Get some through " Instant Computing " Get the attribute of the value :offsetWidth、offsetHeight、offsetTop、offsetLeft、 scrollTop、scrollLeft、scrollWidth、scrollHeight、clientTop、clientLeft、clientWidth、clientHeight And call getComputedStyle Method , perhaps IE Of currentStyle Method .
Repaint
When we modify DOM The style of ( Does not affect its geometric properties ) when , Browsers need to redraw new styles for elements. The process is called redrawing .
Browser redrawing process

Conditions that trigger redrawing
modify DOM The style of , But without affecting its geometric attributes, redrawing will occur .
Optimize
Rearrangement and redrawing are more performance consuming , So in the development process , We should be Avoid rearrangement and reduce redrawing .
This concludes the article
If you have any other ideas , Welcome to the comment area !
边栏推荐
猜你喜欢

Basic introduction to the control of the row component displaying its children in the horizontal array (tutorial includes source code)

Benji Bananas 会员通行证持有人第二季奖励活动更新一览

Win11如何给应用换图标?Win11给应用换图标的方法

解决CMakeList find_package找不到Qt5,找不到ECM

如何将mysql卸载干净

"21 days proficient in typescript-3" - install and build a typescript development environment md

PHP人才招聘系统开发 源代码 招聘网站源码二次开发

File operation --i/o

Win11提示无法安全下载软件怎么办?Win11无法安全下载软件

阈值同态加密在隐私计算中的应用:解读
随机推荐
Twig数组合并的写法
npm安装
American chips are no longer proud, and Chinese chips have successfully won the first place in emerging fields
Apple has abandoned navigationview and used navigationstack and navigationsplitview to implement swiftui navigation
深耕5G,芯讯通持续推动5G应用百花齐放
yarn 常用命令
Cs231n notes (bottom) - applicable to 0 Foundation
File operation --i/o
C# TCP如何设置心跳数据包,才显得优雅呢?
HiEngine:可媲美本地的云原生内存数据库引擎
[61dctf]fm
PHP人才招聘系统开发 源代码 招聘网站源码二次开发
Apple 已弃用 NavigationView,使用 NavigationStack 和 NavigationSplitView 实现 SwiftUI 导航
解决CMakeList find_package找不到Qt5,找不到ECM
Raspberry pie 4B installation pytorch1.11
WSL2.0安装
Timestamp strtotime the day before or after the date
详解SQL中Groupings Sets 语句的功能和底层实现逻辑
[deep learning] how does deep learning affect operations research?
如何安装mysql