1. 程式人生 > >字串拼接效率問題(不同瀏覽器)

字串拼接效率問題(不同瀏覽器)

JS程式碼的執行效率往往直接影響了頁面的效能,有的時候,實現同樣的功能,不同的JS程式碼往往在效率上相差很多,有的時候僅僅是由於我們的書寫習慣導致的,當然在高階點的瀏覽器中,它們大多都已經幫我們優化了,但是在中國,萬惡的IE6仍然大量的存在,我們不得不去考慮它。對於JS程式碼的優化,實際上有很多的情況,有些影響是比較小的,而有些是比較嚴重的,本文中,我把幾個我認為影響比較嚴重的情況列出來,供大家參考。

1、字串的拼接

字串的拼接在我們開發中會經常遇到,所以我把其放在首位,我們往往習慣的直接用+=的方式來拼接字串,其實這種拼接的方式效率非常的低,我們可以用一種巧妙的方法來實現字串的拼接,那就是利用陣列的join方法。

<div class="one" id="one"></div>   
<input type="button" value="效率低" onclick="func1()" />   
<input type="button" value="效率高" onclick="func2()" /> 
//效率低的   
function func1(){   
    var start = new Date().getTime();   
    var template = "";   
    for(var i = 0; i < 10000; i++){   
        template += "<input type='button' value='a'>";   
    }   
    var end = new Date().getTime();   
    document.getElementById("one").innerHTML = template;   
    alert("用時:" + (end - start) + "毫秒");   
}   
//效率高的   
function func2(){   
    var start = new Date().getTime();   
    var array = [];   
    for(var i = 0; i < 10000; i++){   
        array[i] = "<input type='button' value='a'>";   
    }   
    var end = new Date().getTime();   
    document.getElementById("one").innerHTML = array.join("");   
    alert("用時:" + (end - start) + "毫秒");   
}   
我們看看其在不同瀏覽器下執行的情況 


我們會發現,在IE6下其差別是相當明顯的,其實這種情況在IE的高版本中體現的也非常明顯,但是在Firefox下卻沒有多大的區別,相反第二種的相對效率還要低點,不過只是差別2ms左右,而Chrome也和Firefox類似。另外在這裡順便說明一下,在我們給陣列新增元素的時候,很多人喜歡用陣列的原生的方法push,其實直接用arr[i]或者arr[arr.length]的方式要快一點,大概在10000次迴圈的情況IE瀏覽器下會有十幾毫秒的差別。
--------------------- 
作者:I-T梟 
來源:CSDN 
原文:https://blog.csdn.net/hahahhahahahha123456/article/details/81879616 
版權宣告:本文為博主原創文章,轉載請附上博文連結!