虚拟DOM与Diff算法

本文介绍了真实DOM的渲染过程,包括DOM树、CSS树、Render树的构建以及回流与重绘的概念。接着深入讨论了虚拟DOM的概念,用于提高渲染效率。最后详细阐述了Diff算法,用于比较新旧虚拟DOM的差异,实现高效更新。
摘要由CSDN通过智能技术生成

1、真实DOM的渲染过程

 

DOM树的构建

HTML在页面进行解析时,会先解析HTML以及css代码,当遇到js代码是就会暂停解析,所以我们一般会将script标签放在最下面。

CSS树的构建

与构建DOM类似,浏览器也会将样式规则,构建成CSSOM。浏览器会遍历CSS中的规则集,根据css选择器创建具有父子,兄弟等关系的节点树。

Render树的构建

这一步是将html与css进行关联,确定每个节点使用什么样式,在页面中可见的节点,可以生成到render树中,不可见的不能生成到rebder树中(hesd 以及display:none的节点)

回流与重绘

当给一个元素更换颜色、更换背景,虽然不会影响页面布局,但是颜色或背景变了,就会重新渲染页面,这就是重绘。

当增加或删除dom节点,或者给元素修改宽高时,会改变页面布局,那么就会重新构造dom树然后再次进行渲染,这就是回流。导致回流的原因:①浏览器窗口大小的改变②元素字体大小的变化 ③增加或者一处样式表④内容的变化⑤添加或则删除可见元素 等等

重绘不一定引起回流,但是回流一定会引起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值