html數(shù)組字符串拼接的最快方法
更新時間:2009年09月16日 13:07:57 作者:
html字符串的連接方法有多種,但效率卻有很大區(qū)別,大家可以感覺需要選擇。
第一種:逐個字符串相加
var arr = ['item 1', 'item 2', 'item 3', ...],
list = '';
for (var i = 0, l = arr.length; i < l; i++) {
list += '<li>' + arr[i] + '';
}
list = '<ul>' + list + '</ul>';
這種最常見的,但是效率最低!代碼邏輯相對來說復雜。
第二種:逐個 push 進數(shù)組
var arr = ['item 1', 'item 2', 'item 3', ...],
list = [];
for (var i = 0, l = arr.length; i < l; i++) {
list[list.length] = '<li>' + arr[i] + '';
}
list = '<ul>' + list.join('') + '</ul>';
比上一種方法稍微快一些,但還是不夠好…
第三種:直接join()
var arr = ['item 1', 'item 2', 'item 3', ...];
var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';
使用原生的方法(比如 join()),不管它后面是怎么實現(xiàn)的,一般都比其他方法快很多,而且代碼非常簡潔。
瀏覽器性能
每種方法是使用一個長度為 130 的數(shù)組來測試,其中每個元素的長度是多種多樣的,防止瀏覽器對一定長度的字符串做特殊的優(yōu)化;每種方法測試了 1000 次;下面的結(jié)果顯示,執(zhí)行完這 1000 次需要的時間:
復制代碼 代碼如下:
var arr = ['item 1', 'item 2', 'item 3', ...],
list = '';
for (var i = 0, l = arr.length; i < l; i++) {
list += '<li>' + arr[i] + '';
}
list = '<ul>' + list + '</ul>';
這種最常見的,但是效率最低!代碼邏輯相對來說復雜。
第二種:逐個 push 進數(shù)組
復制代碼 代碼如下:
var arr = ['item 1', 'item 2', 'item 3', ...],
list = [];
for (var i = 0, l = arr.length; i < l; i++) {
list[list.length] = '<li>' + arr[i] + '';
}
list = '<ul>' + list.join('') + '</ul>';
比上一種方法稍微快一些,但還是不夠好…
第三種:直接join()
復制代碼 代碼如下:
var arr = ['item 1', 'item 2', 'item 3', ...];
var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';
使用原生的方法(比如 join()),不管它后面是怎么實現(xiàn)的,一般都比其他方法快很多,而且代碼非常簡潔。
瀏覽器性能
每種方法是使用一個長度為 130 的數(shù)組來測試,其中每個元素的長度是多種多樣的,防止瀏覽器對一定長度的字符串做特殊的優(yōu)化;每種方法測試了 1000 次;下面的結(jié)果顯示,執(zhí)行完這 1000 次需要的時間:
