-
Notifications
You must be signed in to change notification settings - Fork 18
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
介绍下重绘和回流(Repaint & Reflow),以及如何进行优化 #42
Comments
Rashomon511
changed the title
第二十三题:介绍下重绘和回流(Repaint & Reflow),以及如何进行优化
介绍下重绘和回流(Repaint & Reflow),以及如何进行优化
Apr 11, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
当元素的样式发生变化时,浏览器需要触发更新,重新绘制元素。这个过程中,有两种类型的操作,即重绘与回流。
重绘(repaint): 当元素样式的改变不影响布局时,浏览器将使用重绘对元素进行更新,此时由于只需要UI层面的重新像素绘制,因此 损耗较少
回流(reflow): 当元素的尺寸、结构或触发某些属性时,浏览器会重新渲染页面,称为回流。此时,浏览器需要重新经过计算,计算后还需要重新页面布局,因此是较重的操作。会触发回流的操作:
回流必定触发重绘,重绘不一定触发回流。重绘的开销较小,回流的代价较高。
实践:
css
javascript
扩展: style标签写在body后与body前有什么区别
写在head标签中利于浏览器逐步渲染(resources downloading->CSSOM+DOM->RenderTree(composite)->Layout->paint)
写在body标签后由于浏览器以逐行方式对html文档进行解析,当解析到写在尾部的样式表(外联或写在style标签)会导致浏览器停止之前的渲染,等待加载且解析样式表完成之后重新渲染,在windows的IE下可能会出现FOUC现象(即样式失效导致的页面闪烁问题)
The text was updated successfully, but these errors were encountered: