We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
一旦 Render Tree 构建完毕后,浏览器就可以根据 Render Tree 来绘制页面了
当 Render Tree 中部分或全部元素的 尺寸、结构、或某些属性 发生改变时,浏览器重新渲染部分或全部文档的过程称为回流
在回流的时候,浏览器会使渲染树中受到影响的部分失效,并重新构造这部分渲染树,完成回流后,浏览器会重新绘制受影响的部分到屏幕中,该过程成为重绘
(由于浏览器使用流式布局,对 Render Tree 的计算通常只需要遍历一次就可以完成,但 table 及其内部元素除外,他们可能需要多次计算,通常要花 3 倍于同等元素的时间)
当 Render Tree 中的一些元素需要更新属性,而这些属性只是影响元素的 外观,风格,而不会影响布局的,比如 background-color。则就叫称为重绘
回流必将引起重绘,而重绘不一定会引起回流
当页面布局和几何属性改变时就需要回流:
浏览器会维护1个队列,把所有会引起回流、重绘的操作放入这个队列,等队列中的操作到了一定的数量或者到了一定的时间间隔,浏览器就会 flush 队列,进行一个批处理。这样就会让多次的回流、重绘变成一次回流重绘
但当向浏览器请求某些属性时,浏览器为了给你最精确的值,需要 flush 队列,因为队列中可能会有影响到这些值的操作:
CSS
JavaScript
http://www.css88.com/archives/4996
https://www.zhangxinxu.com/wordpress/2010/01/%E5%9B%9E%E6%B5%81%E4%B8%8E%E9%87%8D%E7%BB%98%EF%BC%9Acss%E6%80%A7%E8%83%BD%E8%AE%A9javascript%E5%8F%98%E6%85%A2%EF%BC%9F/
https://www.cnblogs.com/snandy/archive/2011/03/12/1980444.html
https://juejin.im/post/5a9923e9518825558251c96a
The text was updated successfully, but these errors were encountered:
No branches or pull requests
# 页面的呈现
一旦 Render Tree 构建完毕后,浏览器就可以根据 Render Tree 来绘制页面了
# 回流
当 Render Tree 中部分或全部元素的 尺寸、结构、或某些属性 发生改变时,浏览器重新渲染部分或全部文档的过程称为回流
在回流的时候,浏览器会使渲染树中受到影响的部分失效,并重新构造这部分渲染树,完成回流后,浏览器会重新绘制受影响的部分到屏幕中,该过程成为重绘
(由于浏览器使用流式布局,对 Render Tree 的计算通常只需要遍历一次就可以完成,但 table 及其内部元素除外,他们可能需要多次计算,通常要花 3 倍于同等元素的时间)
# 重绘
当 Render Tree 中的一些元素需要更新属性,而这些属性只是影响元素的 外观,风格,而不会影响布局的,比如 background-color。则就叫称为重绘
回流必将引起重绘,而重绘不一定会引起回流
# 触发回流
当页面布局和几何属性改变时就需要回流:
# 浏览器自身优化
浏览器会维护1个队列,把所有会引起回流、重绘的操作放入这个队列,等队列中的操作到了一定的数量或者到了一定的时间间隔,浏览器就会 flush 队列,进行一个批处理。这样就会让多次的回流、重绘变成一次回流重绘
但当向浏览器请求某些属性时,浏览器为了给你最精确的值,需要 flush 队列,因为队列中可能会有影响到这些值的操作:
# 减少回流、重绘
CSS
JavaScript
# 参考
http://www.css88.com/archives/4996
https://www.zhangxinxu.com/wordpress/2010/01/%E5%9B%9E%E6%B5%81%E4%B8%8E%E9%87%8D%E7%BB%98%EF%BC%9Acss%E6%80%A7%E8%83%BD%E8%AE%A9javascript%E5%8F%98%E6%85%A2%EF%BC%9F/
https://www.cnblogs.com/snandy/archive/2011/03/12/1980444.html
https://juejin.im/post/5a9923e9518825558251c96a
The text was updated successfully, but these errors were encountered: