早在2005年,Quirksmode.com发布了这篇文章:
http://www.quirksmode.org/dom/classchange.html
通过更改其类(即"elem.className = x")来改变元素样式的"证据"几乎是通过其样式属性更改其样式的两倍(即"elem.style.someStyle = x"),但在Opera中除外.作为该文章的结果,我们开始使用基于className的解决方案来执行在我们的网站上显示/隐藏元素的事情.
问题是,我们的开发人员之一宁愿使用jQuery的等效方法来处理这类事情(即"$(某事).hide()"),而且我很难说服他们基于className.功能是值得使用的,因为我只能找到四年前写的一篇文章.
有谁知道有关此问题的最近或更全面的调查?
微观优化是邪恶的.我认为,除非你同时隐藏了大量的元素,否则毫秒的差异是不重要的,如果有一些机会,那么这篇文章现在仍然具有相关性.
考虑到这一点,我会使用jQuery的方法,因为它们经过了战斗测试,更加简洁.
该文章使用的基准测试存在缺陷.
根据我的个人经验,我从未见过更新className优于内联样式设置的情况.我没有具体证明这一点(我依旧记得有一篇文章,我将尝试挖掘),但我注意到大型客户端应用程序(例如gmail或谷歌地图)更喜欢将内联样式设置为classNames,并且正是在分析这些应用程序的背景下,我才第一次听说这样做会增加速度.
请注意,我不是在推广另一个:在可维护性/可读性和分离关注方面动态设置className有很长的路要走.