问题如题:下面是我基于mootools给的一段js,性能不满意,求高性能的js代码,或基于mootools的实现方法,
注:数据量几千条begin = new Date().getTime();
css="allchecked";s1="";
for(i=0;i<$$('.'+css).length;i++){
 if(!$$('.'+css)[i].get('checked')){
s1+=$$('.'+css)[i].get('value')+'#_@_#';
        }
}
console.log(s1);
end = new Date().getTime();
console.log(end-begin);

解决方案 »

  1.   

    begin = new Date().getTime();
    css = "allchecked";var s1 = [];
    for (i = 0, len = $$('.' + css).length; i < len; i++)
    {
    var obj = $$('.' + css)[i];
    if (!(obj.get('checked')))
    {
    var val = obj.get('value') + '#_@_#';
    s1.push(val);
    }
    }
    var str = s1.join("");
    console.log(str);
    end = new Date().getTime();
    console.log(end - begin);
      

  2.   

    性能的确提升了不少,想请问一下是否还有提升的空间。mootools直接可以把属性加在取dom节点中吗?
    类似这样的写法$$(".classname[checked='checked']"),好像jquery中是有的。 jquery实现的原理是什么?
      

  3.   

    我ie,ff,chrome我都试了一下,ie下有28s,ff下1.5s,chrome下1s左右,想请教一下,ie下 如何在优化啊。ie的js性能真是差。
      

  4.   

    应该还能再快一点 
    begin = new Date().getTime();
    css = "allchecked";var s1 = [];
    var comps = $$('.' + css);
    for (i = 0, len = comps.length; i < len; i++)
    {
    var obj = comps[i]; 
    if (!(obj.get('checked')))
    {
    var val = obj.get('value') + '#_@_#';
    s1.push(val);
    }
    }
    var str = s1.join("");
    console.log(str);
    end = new Date().getTime();
    console.log(end - begin);
    这是极限了我觉的 该考虑的都考虑了 其他性能上的优化得从框架里的源码入手了
      

  5.   

    另外:IE6下会慢 除了代码的优化 也与自身引擎有关系 相对IE来说 其他两款浏览器在js解析方面做的都比较好
      

  6.   

    jquery 性能  百度一下 
      

  7.   

    没用过mootools,不知道comps[i]这个是element还是mootools的一个对象,如果是element,完全可以obj.checked和obj.value,不用再走一步用get
      

  8.   

    果然有优化了很多,现在ie在1s左右,看来ie的取dom的能力是不太优秀的,把取dom提出来,的确是个很好的优化方法。谢谢大家的帮忙。