提高js字串串連的效能

來源:互聯網
上載者:User

轉貼來自:http://hi.baidu.com/x8online/blog/item/5a3e20d3d1814d013bf3cfce.html

方法:定義一個StringBuffer類,在定義個方法(類比C#中StringBuilder類)與直接使用串連字元相比

<script type="text/javascript">

     function StringBuffer()//使用建構函式
     {
        this._strings_=new Array;
     }
     StringBuffer.prototype.append=function (str)//使用原型定義函數屬性
     {
      this._strings_.push(str);
     }
     StringBuffer.prototype.toString=function ()//使用原型定義函數屬性
     {
      return this._strings_.join("");
     }
  
     var buffer=new StringBuffer();//使用類
     d1=new Date();
     for(var i=0;i<10000;i++)
     {
      buffer.append("text");
     }
     var result=buffer.toString();
     d2=new Date();
     document.write ("<br>Concatenation with StringBuffer:"+(d2.getTime()-d1.getTime())+"milliseconds<br>");
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     var d1=new Date();
     var str="";
     for(var i=0;i<10000;i++)
     {
      str+="text";
     }
     var d2=new Date();
     document.write ("<br>Concatenation with StringBuffer:"+(d2.getTime()-d1.getTime())+"milliseconds");
  
</script>

 

結果:Concatenation with StringBuffer:110milliseconds

           Concatenation with StringBuffer:2422milliseconds

以上結果經測試正確,結果StringBuffer比直接使用串連字元節省100%~200%的時間

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.