IE6:
s+=耗时:8625
array.join耗时:16FF:
s+=耗时:281
array.join耗时:297

解决方案 »

  1.   

    才知道啊Array.Join的效率总是不低于直接拼接的
      

  2.   

    交换下顺序,测试结果(FF)为:
    array.join耗时:16
    s+=耗时:10000+<script>
    var StartTime=new Date();
    var EndTime;
    var sa=new Array();
    var s="";StartTime=new Date();
    for(var i=0;i<3000;i++)
    {
    sa[i]="a<table></table><table></table><table></table><table></table><table></table><table></table><table></table><table></table>b";
    }
    s=sa.join();
    EndTime=new Date();
    alert("array.join耗时:"+(EndTime-StartTime));
    for(var i=0;i<3000;i++)
    {
    s+="a<table></table><table></table><table></table><table></table><table></table><table></table><table></table><table></table>b";
    }
    EndTime=new Date();
    alert("s+=耗时:"+(EndTime-StartTime));
    </script>不解
      

  3.   

    array.push() 是终极方法...不过由于引擎的不同...
    Opera 使用+= 会更快...
    IE 推荐使用 push();
      

  4.   

    array.push() //  是啥方法 。。哪位大哥给个好点的帮助啊  郁闷  看到好多方法不知道都没帮助查。
      

  5.   

    哈哈,梅花兄,这真的是我自己想出来的,我在路上骑自行车的时候考虑C#中有stringbulder那么javascript中用什么呢,就想到了这个.能得到梅花兄的赞赏,可喜可贺,哈哈...
      

  6.   

    我见过javascript写的最好的代码见
    http://www.scbr.com/docs/company.shtml
    是白俄罗斯首都明斯克的一家做外包的公司,那些javascript例子写的太牛了,大家有时间可以看看.
      

  7.   

    我到网上查了查,push是这么用的
    var arr=new Array()
    arr[0]="xbc1";
    arr[1]="bcx2";
    arr[2]="cctv3";
    arr[5]="xctv4";
    arr.push("邢志云");//向最后追加
    arr.push("0123");
    for(i=0;i<arr.length;i++)
    {
    document.writeln(arr[i]);
    }
      

  8.   

    这个问题的原理:先看一下例子:    String s = "Hello";
        s = s + " world!";  在这段代码中,s原先指向一个String 对象,内容是"Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。  通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修改,或者说,不可预见的修改,那么使用String来代表字符串的话会引起很大的内存开销。因为String对象建立之后不能再改变,所以对于每一个不同的字符串,都需要一个String对象来表示。    对于有大量的字符串相加的操作,内存的浪费相当可观,所以会导致速度越来越慢。    这时,可考虑使用StringBuffer类,它允许修改,而不是每个不同的字符串都要生成一个新的对象。并且,这两种类的对象转换十分容易。    而对于数组的PUSH来说,很类似于StringBuffer类,占用内存小,所以速度快!    以上是愚见,来自于我看的一篇技术文章,不正确的地方请各位高手指出!
      

  9.   

    http://blog.csdn.net/BlueDestiny/archive/2006/08/09/1039694.aspx  
      

  10.   

    好帖子,敬佩楼主,效率是程序员追求完美和完善和后期检测程序时的条件。我来补充一下我的体现哈:用innerHTML+=x时,如果数据超大,浏览器就会慢得假死现象,用insertAdjacentHTML(beforeEnd,x)方法就完全正常。用变量去执行+=,最后再用innerHTML来输出变量,也比上面的innerHTML+=快NNN倍。而最快的还是大家研究的用数组的形式,最后用.join来得快,然后数组中用push来添加更能完美提高速度。