用css改样式与用js改样式有什么性能上的差异?

对于比较旧的浏览器这两者有没有性能上的区别?
对于硬件比较差的机器,这两者有什么区别呢?

阅读 4.6k
3 个回答

1.通过style设置样式会频繁造成浏览器重绘/重排,当然某些浏览器会做优化,把一组样式修改放在一起执行。不过如果中间触发了强制浏览器重绘/重排的事件(获取尺寸等),浏览器会被逼提前渲染,何况问题中的“旧浏览器”未必有这些优化。总的来说,性能差。

2.通过js设置样式不利于管理维护,试想改一个样式需要css和js文件两头看,成本大增。尽量不要在js设置中设置样式。题主不觉得js切换class是很优雅的事情吗:)

记得看到一篇文章好像说过通过dom.style.property这种方式设置样式性能没有通过设置class性能好,所以如果如果是操作大量的样式还是用css吧,少数的样式创建和修改无所谓吧!

请参看
《编写可维护的JAVASCRIPT》第5章UI层的松耦合

我是大神的搬运工
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题