美文网首页
1.5 重绘和回流

1.5 重绘和回流

作者: 得到世界又如何我的心中只有你 | 来源:发表于2020-08-14 11:09 被阅读0次
浏览器渲染方式

首先介绍浏览器的组成部分:

1.用户界面(包含窗口、标签页等)
2.浏览器引擎(查询、操作渲染引擎)
3.渲染引擎(解析、渲染请求的内容,包含:网络、JS解释器、UI后端)
4.数据存储层(轻量的数据库,包含storage、cookies、websql、db等)

不同浏览器渲染引擎不同,由浏览器内核决定,常见浏览器以及内核有:

IE: Trident
FirFox: Gecko
Chrome/Safari: WebKit
Opera: Presto

当渲染引擎开始工作时:

1.解析HTML生成DOM Tree
2.解析CSS生成CSS Tree
3.合并DOM树和CSS树生成Render Tree
4.开始reflow,计算DOM节点的绝对位置
5.通知GPU进程进行绘制显示

回流 reflow

当Render树的一部分或者全部因元素的大小/位置信息/布局等改变而需要进行重建的过程,称之为回流
包含:

1.dom节点的添加/删除
2.元素的font-size、width、height、padding、margin、border的大小/宽度变化
3.获取某些属性,包含:
1).offsetWidth、offsetHeight、offsetLeft、offsetTop
2).scrollWidth、scrollHeight、scrollLeft、scrollTop
3).clientWidth、clientHeight、clientLeft、clientTop
4.dom的resize事件触发

重绘 repaint

当元素的属性(如元素的颜色/背景)发生变化而导致GPU需要重新渲染的过程,称之为重绘
回流必定导致重绘,重绘不一定引发回流

如何尽可能避免 reflow

1.当进行dom添加或者删除时,通过变量保存获取的dom节点,使用文档片段DocumentFragment进行内存的累加最后再追加到dom上
2.当进行元素大小/宽度/布局操作时,定义class类将操作集合,通过一次切换class实现
3.对offset/scroll/client等位置属性访问处理时,用变量进行缓存
4.对需要动画操作的元素,尽可能使用position脱离文档流

相关文章

  • 1.5 重绘和回流

    浏览器渲染方式 首先介绍浏览器的组成部分: 1.用户界面(包含窗口、标签页等)2.浏览器引擎(查询、操作渲染引擎)...

  • 面经 之 Browser浏览器读后感

    浏览器,原文请移步Browser | InterviewMap 回流和重绘 回流和重绘 - 掘金 存储 cooki...

  • 前端总结(后续继续更新)

    1,reflow和repaint:回流和重绘。回流:renderTree 重建。重绘:外观样式风格进行更新。(co...

  • 前端一些细节

    1,reflow和repaint:回流和重绘。回流:renderTree 重建。重绘:外观样式风格进行更新。(co...

  • 22,重绘、回流

    1,浏览器渲染机制 2,重绘 3,回流 > 重绘。 4,浏览器优化 5,减少重绘和回流

  • 浏览器渲染回流重绘与性能优化

    我们根据渲染的流程可知, 回流一定会触发重绘,而重绘不一定会回流。 渲染性能优化 回流和重绘的代价是比较昂贵的,渲...

  • DOM树 CSS树 render树 以及JS的加载

    回流和重绘回流一定会引起重绘而重绘可以单独触发 例如修改背景颜色 字体颜色等...引起回流的因素:1.DOM节点 ...

  • 前端性能优化(HTML、CSS、JS)

    1.HTML优化篇 1.减少重绘和回流 不了解重绘和回流请点击我要了解 回流这一阶段主要是计算节点的位置和几何信息...

  • 怎样区分页面的回流和重绘

    一、什么是回流和重绘 引起DOM树结构变化,页面布局变化的行为叫回流,且回流一定伴随重绘。只是样式的变化,不会引起...

  • 回流与重绘

    回流一定会触发重绘回流: DOM结构的增删改重绘: 颜色,背景, 字体等视觉上页面的改变 重绘不一定触发回流 如何...

网友评论

      本文标题:1.5 重绘和回流

      本文链接:https://www.haomeiwen.com/subject/dofgrktx.html