当前位置:  开发笔记 > 编程语言 > 正文

Javascript:.className更改与.style更改的性能

如何解决《Javascript:.className更改与.style更改的性能》经验,为你挑选了2个好方法。

早在2005年,Quirksmode.com发布了这篇文章:

http://www.quirksmode.org/dom/classchange.html

通过更改其类(即"elem.className = x")来改变元素样式的"证据"几乎是通过其样式属性更改其样式的两倍(即"elem.style.someStyle = x"),但在Opera中除外.作为该文章的结果,我们开始使用基于className的解决方案来执行在我们的网站上显示/隐藏元素的事情.

问题是,我们的开发人员之一宁愿使用jQuery的等效方法来处理这类事情(即"$(某事).hide()"),而且我很难说服他们基于className.功能是值得使用的,因为我只能找到四年前写的一篇文章.

有谁知道有关此问题的最近或更全面的调查?



1> Paolo Bergan..:

微观优化是邪恶的.我认为,除非你同时隐藏了大量的元素,否则毫秒的差异是不重要的,如果有一些机会,那么这篇文章现在仍然具有相关性.

考虑到这一点,我会使用jQuery的方法,因为它们经过了战斗测试,更加简洁.



2> Crescent Fre..:

该文章使用的基准测试存在缺陷.

根据我的个人经验,我从未见过更新className优于内联样式设置的情况.我没有具体证明这一点(我依旧记得有一篇文章,我将尝试挖掘),但我注意到大型客户端应用程序(例如gmail或谷歌地图)更喜欢将内联样式设置为classNames,并且正是在分析这些应用程序的背景下,我才第一次听说这样做会增加速度.

请注意,我不是在推广另一个:在可维护性/可读性和分离关注方面动态设置className有很长的路要走.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有