即使没有关联的CSS,通过JavaScript更改主容器元素中的信息属性(例如数据属性)(甚至是CSS类)是否会影响性能?(DOM的表示方式没有相关的变化。)例如,将相同的属性更改降级到隐藏输入代理是不是更好?
在this post中,答案表明所有DOM突变都会导致重新绘制或回流。This article建议他们更有选择性地发生。属性可以在CSS选择器中作为目标,所以我猜测在浏览器评估重绘或回流的可能性时,一定会有一些固有的成本,但我不清楚这个成本可能有多大。
发布于 2016-09-01 22:04:30
我刚刚在Chrome52上测试了它,并在开发者工具中启用了Paint flashing选项。
当更改与其样式无关的DOM元素的属性时,我没有看到任何画笔闪烁。既不使用像data-test="123"这样的自定义属性,也不使用class="non-existing-class"。
我认为你也应该用其他浏览器来测试这一点,但如果你需要的话,我不认为设置属性有问题。
https://stackoverflow.com/questions/39273533
复制相似问题