try*_*lly 5 css rendering google-chrome reflow
是什么导致在 Chrome 中重新计算样式以及如何减少此步骤的时间?
在具有许多元素(变量,例如 10,000)的应用程序中,在这些元素的父元素上添加类时,我观察到重新计算样式需要很长时间。当容器有这个类时,有选择器会影响每个子树的元素。
在开发人员工具中,我能够通过单击此处(MCVE 的屏幕截图)来跟踪重新计算样式事件的原因:
从到名称我假设这一步涉及计算有效(最终)元素样式。我认为这发生在
一个改变的(伪)类
更改的 CSS 选择器(导入新 CSS,生成<style>)
强制浏览器重新计算元素的 CSS 属性。
我使用与静态 HTML 相同数量的元素创建了一个 MCVE,并使用文档上的处理程序在a.change上切换类- 死的简单代码。.containerclick
MCVE 的性能比实际应用程序要好得多,重新计算样式步骤花费的时间更少。这可能是由于更简单的树和更少的样式。
然后我开始向所有选择器添加更多样式,并且每增加一组新的 CSS 属性,平均时间就会增加。向 10,000 个子树添加更多元素并没有改变平均时间。
所以,我想说这次影响的是 CSS 属性的数量、受影响的选择器的数量和受影响的元素的数量。
重新计算风格
基本上任何时候你改变类名或其他类似的操作。
参考
| 归档时间: |
|
| 查看次数: |
5507 次 |
| 最近记录: |