私は464個のJSONオブジェクトを持っています。これらの要素のそれぞれからHTML要素を生成し、divに順番に挿入する必要があります。これをレンダリングする最速の方法は何でしょうか?オブジェクトを通してHTML /パフォーマンス:大量の動的DOM挿入の処理
A)ループを、それぞれのマークアップを生成し、それら全てを連結し、連結されたマークアップに容器div
のinnerHTML
設定:
document.getElementById("container").innerHTML =
jsonItems.map(function(item) {
return convertToHTMLString(item);
}).join("");
B)ループオブジェクトを介して、DOMを生成しますそれぞれのノード、及び容器にそれぞれ順次挿入:挿入し、順次、それぞれのDOMノードを生成し、オブジェクトを介し
var container = document.getElementById("container");
jsonItems.forEach(function(item) {
container.appendChild(convertToDOMNode(item));
});
C)ループDocumentFragment
にそれらを追加します
var fragment = document.createDocumentFragment();
jsonItems.forEach(function(item) {
fragment.appendChild(convertToDOMNode(item));
});
document.getElementById("container").appendChild(fragment);
C)は明らかに行く方法です... –
なぜD:サーバーでそれを行う代わりにHTMLを渡すか? –
@pst Bはかなり遅くなります。なぜなら、ドキュメントフラグメントがページへの再レンダリングをカスケードしないように、ページを再レンダリングさせるからです。 – Raynos