提高js效率,不妨多用用id少用用class

   众所周知,js在ie浏览器下的效率并不好,因此当页面很大且具有繁杂的逻辑操作时,ie真的会显得很累。怎么说呢?ie的开发者也不是傻瓜,或许我们这些低端一点的程序员们还没有适应ie浏览器工程师们的思路才导致这样的结果。但很显然exjjs在这方面做得很好,无论这个页面做得多大,很卡的页面,小弟陋识,罕有见到。
   其实以上绝非废话,我的一点心得,也是从extjs的一些编码风格获取的。
    前些天做了个页面,逻辑有些复杂。而且元素也颇多,因此运行起来。总监每次看这个页面我也是提心吊胆生怕哪里卡住。于是乎想方设法去修正。当然修改了很多。这里有最总要一点。
   之前写html时有个陋习,就是喜欢用class,非万不得已不用id。于是当有大量相同元素时,我便会列出一排相同的class,当然这样维护相当方便。例如下:
<li class=”classname”></li>
<li class=”classname”></li>
<li class=”classname”></li>
		……………
<li class=”classname”></li>
<li class=”classname”></li>

或者
<ul class="className">
<li></li>
<li></li>
<li></li>
		……………
<li></li>
<li></li>
</ul>

看起来相当好维护,而且使用起jquery的方法来获取元素也是相当的方便。
例如:$(“.classname”).each()亦或是$(“.classname”).eq(i);看起来很方便是不是,是不是很感谢jquery给我们带来的强大的获取功能?问题就出在这里。Jquery好用其实很多时候是建立在牺牲效率的前提下的。好用,其实并不实惠。
我的建议是,尽量取消jquery里那些看似功能强大的选择功能,踏踏实实给每个要操纵的元素加一个id吧。
我做了实验,如果使用id,js会很快在一次遍历中找到需要的元素(无论有几个id它都会在找到第一个id后返回)。而通过class等去寻找,程序会在整个文档中一遍又一遍的去遍历,找到一个比较判断以后再去找第二个第三个。。。。。。非常浪费资源。使用id后效果如下:
<li id=”id_0”></li>
<li class=” id_1”></li>
<li class=” id_2”></li>
		……………
<li class=” id_n-1”></li>
<li class=” id_n”></li>

我就是通过使用流水id号的方法优化了我的页面(当然这些流水号是动态生成的),虽然方法很土,但是效果还不错哦。
当然这只是我从extjs源码的一点小经验,但是对于写出一个效率高的页面来说,这也许是个不错的选择。

你可能感兴趣的:(html,jquery,css,浏览器,IE)