本人今天遇到一问题,本人做一项目,前台都是用jquery写的。原来项目是在新的场地上试用,计算机是双核的cpu,今天把项目签到了旧场地,电脑也是旧的,cpu是单核的。那么问题就来了,在旧场地页面上面当你点击页面上面的某个按钮,此按钮只做前台效果处理,却发现电脑的cpu马上冲倒顶了,页面也就卡死在那里很久。我同事得出个结论其中一条是Juery在IE6下类选择器比Id选择器的性能低得多,我们马上全部把类选择器换成Id选择器。 本人的想法是,类选择器应该比Id选择器差一点,但现基本上大部分jqeury插件全都是用类选择器,也没人反应出性能问题。在百度goole上也没找到答案。小弟在此请教下论坛里面高人,希望有人能解决下小弟的疑惑。

解决方案 »

  1.   


    http://blog.csdn.net/spring21st/article/details/6282562
      

  2.   

    jquery效果多点 在ie6下 CPU 猛增 。
    哎 。
      

  3.   

    类选择器要经过很多处理过程!你自已写写试试.getElementByID与getElementsByTagName
      

  4.   

    为什么不把客户的电脑安装个ie7, 或者ie8呢?
      

  5.   

    不过不用大脑也可知道, id选择器肯定比类选择器快呀. 
    应该不是ie6的原因, 只是电脑的原因, 旧电脑承受不了太大的计算量而已. 
      

  6.   

    类选择器比id选择器性能要快这个我知道,但是一个页面用类选择器就出现cup猛跳的情况我就不解了。如果真的是这样我相信jquery也是不允许出现在这样的情况,各个开发jquery插件、UI的人就不会用类选择器,恰恰相反,现在基本上jquery插件和UI都是用的类选择器。
      

  7.   

    怎么说呢, 人家用类选择器, 是因为他那个类, 是他自己定义的, 所以数量并不会太多; 再者不用少用id, 也可能是为了避免与你代码中的id产生冲突.
      

  8.   

    因为现在新版本的浏览器都有一个名为querySelectorAll()的原生DOM方法。可以用来遍历class的。。
    jQuery会做判断,如果支持此方法就调用。不支持的话就得遍历所有dom然后再找出class满足的。。
    而IE6就不支持这个方法,所以直接用jQuery类选择器效率是很低的
      

  9.   

    IE6下面用jQuery复杂选择器与类选择器性能都是很差的
      

  10.   

    用其他浏览器试试会不会卡,都卡的话说明代码有问题,如果只有IE6卡的话,可能是兼容性问题或者确实是IE6性能太差
      

  11.   

    楼主查下
    querySelectorAll()就知道了。新浏览器支持的原生DOM方法