DOMへの複数の要素追加をcreateDocumentFragment()を使って試してみます。
サンプルコード
まずは使わない場合の例です。
<div id="sample"></div>
var list = [ '愛園愛美', '相羽ういは', 〜 略 〜 '童田明治' ]; var wrapper = document.getElementById('sample'); for (var i = 0; i < list.length; i++) { var item = document.createElement('div'); item.textContent = list[i]; wrapper.appendChild(item); }
createDocumentFragment()を使わない場合のデモページ
これで要素の追加は行えていますが、要素を生成する毎にDOMに追加しているため、パフォーマンス的にはよくありません。
次にcreateDocumentFragment()を使ってみます。
var list = [ '愛園愛美', '相羽ういは', 〜 略 〜 '童田明治' ]; var wrapper = document.getElementById('sample'); var fragment = document.createDocumentFragment(); for (var i = 0; i < list.length; i++) { var item = document.createElement('div'); item.textContent = list[i]; fragment.appendChild(item); } wrapper.appendChild(fragment);
createDocumentFragment()を使った場合のデモページ
これで先ほどと同様に要素の追加が行えました。
先ほどとの違いは要素生成後に一旦DocumentFragmentに追加しておき、ループ終了後にまとめてDOMに追加している点です。
DocumentFragmentはメインのDOMとは別に要素をまとめておけるDOMのようなもので、メインのDOMへの要素の追加を最小限にすることで、最初の例と比べてパフォーマンスの改善を見込めます。
コメントが承認されるまで時間がかかります。