-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[软技能] 第21天 来说说你对重绘和重排的理解,以及如何优化? #73
Comments
重绘:当盒子的位置、大小以及其他属性,例如颜色、字体大小等都确定下来之后,浏览器便把这些原色都按照各自的特性绘制一遍,将内容呈现在页面上。重绘是指一个元素外观的改变所触发的浏览器行为,浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。 重排(回流):当渲染树中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建, 这就称为回流(reflow)。每个页面至少需要一次回流,就是在页面第一次加载的时候。 优化1、浏览器自己的优化:浏览器会维护1个队列,把所有会引起回流、重绘的操作放入这个队列,等队列中的操作到了一定的数量或者到了一定的时间间隔,浏览器就会flush队列,进行一个批处理。这样就会让多次的回流、重绘变成一次回流重绘。 |
在掘金上看到一篇不错的文章 |
重绘重新绘制元素的样式,重排是重新计算布局改变元素的位置 重绘不一定会重排,重排一定重绘 优化:当需要元素外观发生变化时 尽量使用不会改变布局的属性(opacity,transform),或者将该元素脱离文档流 |
重绘重绘是指一个元素外观的改变所触发的浏览器行为,浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。 重排当渲染树中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建, 这就称为重排。 优化要减少重绘和重排就是要减少对渲染树的操作,则可以合并多次的DOM和样式的修改。并减少对style样式的请求。 |
第21天 来说说你对重绘和重排的理解,以及如何优化?
The text was updated successfully, but these errors were encountered: