国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Fastest way to build an HTML string(拼裝html字符串的最快方法)

2019-11-20 23:42:47
字體:
來源:轉載
供稿:網友
Fastest way to build an HTML stringPosted in 'Code Snippets, JavaScript' by James on May 29th, 2009
原文:http://james.padolsey.com/javascript/fastest-way-to-build-an-html-string/

復制代碼 代碼如下:

var arr = ['item 1', 'item 2', 'item 3', ...],
list = '';
for (var i = 0, l = arr.length; i < l; i++) {
list += '<li>' + arr + '</li>';
}
list = '<ul>' + list + '</ul>';//最低效的方式。
var arr = ['item 1', 'item 2', 'item 3', ...], list = [];for (var i = 0, l = arr.length; i < l; i++) { list[list.length] = '<li>' + arr + '</li>';}list = '<ul>' + list.join('') + '</ul>';;//比上一種的方式快。

var arr = ['item 1', 'item 2', 'item 3', ...];var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';//最優的方式。

執行1000 次:"String concat"
(ms)
"Array pushing"
(ms)
"Native join()"
(ms)
Firefox 314714865Opera 917212578IE 7500229779Chrome 2638872Safari 4b14614160Averages20555970
只有chrome比較特別,第一種方法反而是最快的。

中文翻譯版本
第一種:逐個字符串相加
復制代碼 代碼如下:

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 進數組
復制代碼 代碼如下:

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()),不管它后面是怎么實現的,一般都比其他方法快很多,而且代碼非常簡潔。

使用原生的方法(比如 join()),不管它后面是怎么實現的,一般都比其他方法快很多,而且代碼非常簡潔。

瀏覽器性能

每種方法是使用一個長度為 130 的數組來測試,其中每個元素的長度是多種多樣的,防止瀏覽器對一定長度的字符串做特殊的優化;每種方法測試了 1000 次;下面的結果顯示,執行完這 1000 次需要的時間:

2009-09-08_124126

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 方正县| 丰都县| 德兴市| 柳江县| 鸡泽县| 保亭| 三河市| 西昌市| 德令哈市| 巴青县| 沭阳县| 颍上县| 三台县| 通江县| 彰化市| 安塞县| 洛扎县| 赣榆县| 太白县| 六安市| 驻马店市| 台江县| 昌图县| 威远县| 曲水县| 宜兴市| 新野县| 科尔| 太仆寺旗| 恩平市| 鄯善县| 博湖县| 雷波县| 九寨沟县| 全州县| 苗栗市| 于都县| 封丘县| 同心县| 旺苍县| 邵阳县|