Web面试常问回流reflow与重绘repaint原理及区别
浏览器的渲染机制
1.浏览器采用两个引擎来处理页面的工作, 不同的浏览器使用的渲染引擎不一样
渲染引擎:
Chrom
和Safari使用"WebKit",
Firefor
使用"Geoko"
js引擎
2.浏览器会把html解析成 DOM树, 把css解析成 CSSOM(CSS对象模型);
3.接着会把 DOM树 和 CSSOM, 结合产生 render tree(渲染树);
4.渲染树完成后, 浏览器会根据渲染树布局, 布局结束后会输出一个"盒模型", 它会精确捕获每个节点在视图中的位置、尺寸, 并且所有测量值都会转换为屏幕上的物理像素值; (这一步会产生 回流(reflow)
)
5.布局完成后, 浏览器会立即发出 paint stup 事件, 将渲染树转换为屏幕像素; (这一步会产生 重绘(repaint)
)
6.经过以上步骤, 页面将显示在屏幕上.
注意 回流必将引起重绘, 而重绘不一定引起回流
回流 与 重绘
回流
概念:
当渲染树(render tree)中的部分或全部, 因为元素的结构、尺寸、布局等改变时, 浏览器重新渲染部分DOM或全部DOM的过程.
强调元素节点的位置、距离发生改变.
导致回流的操作:
- 浏览器窗口大小发生变化
- 内容改变
- 添加或删除节点
- 激活CSS伪类
- 等等…
重绘
概念:
当页面元素样式改变, 而不影响它在文档流中的位置, 浏览器只会将新的样式赋予元素, 并进行重新绘制操作.
强调元素节点的样式, 例如颜色, 边框实线变虚线(不改变位置、距离).
导致重绘的操作:
- background-color属性值变化时
- border-color属性值变化时
- visibility属性值变化时
- 等等…
以上就是Web面试常问回流reflow与重绘repaint原理及区别的详细内容,更多关于Web面试回流reflow与重绘repaint的资料请关注脚本之家其它相关文章!
相关文章
JavaScript使用escape()、encodeURI()和decodeURI()实现URI编码解码
这篇文章介绍了JavaScript使用escape()、encodeURI()和decodeURI()实现URI编码解码的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-05-05JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
这篇文章主要介绍了JavaScript fontcolor方法入门实例,fontcolor方法用于按照指定的颜色来显示字符串,需要的朋友可以参考下2014-10-10浅析document.ready和window.onload的区别讲解
这篇文章主要介绍了document.ready和window.onload的区别,有需要的朋友可以参考一下2013-12-12JavaScript中isPrototypeOf、instanceof和hasOwnProperty函数的用法详解
本文详细讲解了JavaScript中isPrototypeOf、instanceof和hasOwnProperty函数的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-06-06JavaScript onkeydown事件入门实例(键盘某个按键被按下)
这篇文章主要介绍了JavaScript onkeydown事件入门实例,onkeydown事件捕捉键盘上某个按键被按下的情况,需要的朋友可以参考下2014-10-10实例:用 JavaScript 来操作字符串(一些字符串函数)
实例:用 JavaScript 来操作字符串(一些字符串函数)...2007-02-02
最新评论