ドキュメントフラグメントを作成してそれに追加し、セット全体に対して単一の追加を行います。
var frag = document.createDocumentFragment();
for(var i = 0; i < 1000; i += 1){
var el = document.createElement('div');
el.appendChild(document.createTextNode('Node ' + (i + 1)));
frag.appendChild(el);
}
document.getElementById('nodeHolder').appendChild( frag );
これで、getElementById
一度だけ実行する必要があり、DOM は一度だけ更新する必要があります。
ドキュメント フラグメントは汎用コンテナです。DOM に追加すると、コンテナーは消えて、そのコンテンツのみが追加されます。
必要に応じて、コードを少し圧縮できます。
例: http://jsfiddle.net/7hagb/
var frag = document.createDocumentFragment();
for(var i = 0; i < 1000; i += 1){
frag.appendChild(document.createElement('div'))
.appendChild(document.createTextNode('Node ' + (i + 1)));
}
document.getElementById('nodeHolder').appendChild( frag );
さらに、非常に小さな最適化として、 を取り除き、必要な値を提供するようにループをi + 1
変更しfor
ます。
例: http://jsfiddle.net/7hagb/1/
var frag = document.createDocumentFragment();
for(var i = 1; i <= 1000; i += 1){
frag.appendChild(document.createElement('div'))
.appendChild(document.createTextNode('Node ' + i));
}
document.getElementById('nodeHolder').appendChild( frag );