当前位置:网站首页>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 !
边栏推荐
- 【729. 我的日程安排錶 I】
- 极坐标扇图使用场景与功能详解
- 深耕5G,芯讯通持续推动5G应用百花齐放
- Excuse me, is the redis syntax used in DMS based on the commands of the redis community version of the cloud database
- Jarvis OJ shell traffic analysis
- Jarvis OJ 简单网管协议
- 手机开证券账户安全吗?怎么买股票详细步骤
- Jarvis OJ shell流量分析
- Starkware: to build ZK "universe"
- Summary of methods for finding intersection of ordered linked list sets
猜你喜欢
ECU introduction
深潜Kotlin协程(二十一):Flow 生命周期函数
Scratch colorful candied haws Electronic Society graphical programming scratch grade examination level 3 true questions and answers analysis June 2022
If you can't afford a real cat, you can use code to suck cats -unity particles to draw cats
Desci: is decentralized science the new trend of Web3.0?
Learnopongl notes (II) - Lighting
机器学习编译第2讲:张量程序抽象
Deep dive kotlin synergy (XXI): flow life cycle function
Jarvis OJ Flag
How to uninstall MySQL cleanly
随机推荐
Jarvis OJ Flag
yarn 常用命令
【刷题篇】有效的数独
Flet教程之 12 Stack 重叠组建图文混合 基础入门(教程含源码)
什么是ROM
外盘期货平台如何辨别正规安全?
【729. 我的日程安排表 I】
深潜Kotlin协程(二十一):Flow 生命周期函数
【刷題篇】鹅廠文化衫問題
【组队 PK 赛】本周任务已开启 | 答题挑战,夯实商品详情知识
WSL2.0安装
Jarvis OJ Webshell分析
Android 隐私沙盒开发者预览版 3: 隐私安全和个性化体验全都要
用键盘输入一条命令
【 brosser le titre 】 chemise culturelle de l'usine d'oies
麻烦问下,DMS中使用Redis语法是以云数据库Redis社区版的命令为参考的嘛
网站页面禁止复制内容 JS代码
Jarvis OJ 简单网管协议
Deep learning plus
Solve cmakelist find_ Package cannot find Qt5, ECM cannot be found