<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Oo緣來是你oO


    posts - 120,comments - 125,trackbacks - 0

    JavaScript中字符串連接性能優化

            -- JavaScript 學習筆記

    馬嘉楠    2008-12-19

     

    var str = "hello"
    str 
    += " world"

     

    后臺所做工作:

    1)創建存儲 "hello" 的字符串,且使 str 指向它。

    2)創建存儲 "world" 的字符串。

    3)創建存儲結果的字符串。

    4)將 str 中的當前內容復制到結果字符串中。

    5)把 world 復制到結果字符串中。

    6)更新 str ,使 str 指向結果字符串。

     

    每拼接一次字符串就循環重復2)~6),如果重復成百上千次則會非常消耗資源,影響性能。

     

    解決方法:

    使用 Array 對象存儲字符串,之后使用 join()方法輸出結果。

    仿照 Java 中的 StringBuffer 類。

     

        function StringBuffer(){ 
            
    this._strings = new
     Array; 
        } 
        StringBuffer.prototype.append 
    = function
     (str){ 
            
    this
    ._strings.push(str); 
        } 
        StringBuffer.prototype.toString 
    = function
     (){ 
            
    return this._strings.join(""
    ); 
        } 

     

    測試性能:

    代碼1:使用 "+=" 拼接字符串

     

    var d = new Date(); 
    var str = ""

    for(var i=0;i<10000;i++
    ){ 
        str 
    += "test"



    var d2 = new
     Date(); 
    document.writeln(d2.getTime()
    -d.getTime()); 

     

    代碼2:使用 StringBuffer

     

    var d = new Date(); 
    var str = new
     StringBuffer(); 
    for(var i=0;i<10000;i++
    ){ 
        str.append(
    "test"
    ); 

    var res =
     str.toString(); 
    var d2 = new
     Date(); 
    document.writeln(d2.getTime()
    -d.getTime()); 

     

    從多次測試結果看來,使用StringBuffer 可以節省50%以上的時間。



    馬嘉楠
    jianan.ma@gmail.com

    posted on 2008-12-20 00:09 馬嘉楠 閱讀(479) 評論(0)  編輯  收藏 所屬分類: Java Script
    主站蜘蛛池模板: 日韩精品视频免费在线观看| 亚洲精品天堂在线观看| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 成年午夜视频免费观看视频| 免费视频一区二区| 一区二区三区免费视频观看| 久久亚洲AV成人无码国产最大| 亚洲人配人种jizz| 亚洲精品在线播放| 亚洲激情在线观看| 亚洲精品午夜国产VA久久成人| 亚洲黄黄黄网站在线观看| 日韩成人免费在线| 免费人成在线视频| 国产2021精品视频免费播放| 亚在线观看免费视频入口| 丁香花在线观看免费观看图片| 暖暖免费中文在线日本| 亚洲AV无码成人精品区日韩| 亚洲成人高清在线观看| 亚洲人成电影在线天堂| 亚洲AV无码成人精品区蜜桃| 国产日韩亚洲大尺度高清| 国产亚洲精午夜久久久久久| 免费jjzz在线播放国产| 一级毛片直播亚洲| 免费大黄网站在线看| 四虎免费久久影院| 国产又黄又爽又刺激的免费网址| 麻豆国产人免费人成免费视频 | 久久精品a亚洲国产v高清不卡| 亚洲Av综合色区无码专区桃色| 亚洲av午夜福利精品一区| 国产成人无码综合亚洲日韩| 亚洲色欲久久久综合网| 亚洲欧洲美洲无码精品VA| 亚洲AV无一区二区三区久久| 亚洲国语精品自产拍在线观看 | 亚洲黄色免费网址| 国产乱子精品免费视观看片| 一二三四视频在线观看中文版免费|