总之:
- 缓存你的 DOM 选择器。
- 放弃 for 循环,然后进行反向 while 循环。
- 只将元素附加到 DOM 一次。DOM 几乎总是瓶颈。
在此模式中,您可以利用反向循环:
//Cache the DOM element
var node = document.getElementById('nodeHolder'),
markup = [];
//Run the loop backwards for additional speed
var i = 10000;
while(i--){
markup.push('<div>Node ' + (i + 1) + '</div>');
}
//Reverse the array, join it, then set the innerHTML
node.innerHTML = markup.reverse().join('');
工作示例:http: //jsfiddle.net/ZAkMZ/3/
反向while循环速度参考:https ://blogs.oracle.com/greimer/entry/best_way_to_code_a
jQuery版本:
//Cache the DOM element
var node = $('#nodeHolder'),
markup = [];
//Run the loop backwards for additional speed
var i = 10000;
while(i--){
markup.push('<div>Node ' + (i + 1) + '</div>');
}
//Reverse the array, join it, then set the innerHTML
node.append(markup.reverse().join(''));