AFAIK、ドキュメントフラグメントの利点は、フラグメントがDOMに挿入されるまで、リフローイベントが発生しないことです。合理的に聞こえますが、DOM外の要素もリフローを引き起こさないようです。
例えば:
// with document fragment
var df = document.createDocumentFragment();
// append a bunch of hyperlinks to df
var container = document.createElement('div');
container.appendChild(df);
document.body.appendChild(container);
// with in-memory element
var container = document.createElement('div');
// append a bunch of hyperlinks to container
document.body.appendChild(container);
これをChromeとFirefoxで実行しましたが、2つのバージョンの間にパフォーマンスの違いは見られませんでした。
この方法の時代を考えるとcreateDocumentFragment
(IE6でもサポートされています)、私の理論では、ある時点でより効率的でしたが、ブラウザーレンダリングエンジンの長年の最適化により不要になりました。これは正しいです?