--- title: Document.createDocumentFragment() slug: Web/API/Document/createDocumentFragment tags: - API - DOM - Document - Method - Reference - createDocumentFragment translation_of: Web/API/Document/createDocumentFragment --- <p>{{APIRef("DOM WHATWG")}}</p> <p><span class="seoSummary">新しい空の {{domxref("DocumentFragment")}} を作成し、そこに DOM ノードを追加して画面外の DOM ツリーを作成します。</span></p> <h2 id="Syntax" name="Syntax">構文</h2> <pre class="syntaxbox notranslate">var <var>fragment</var> = document.createDocumentFragment(); </pre> <h3 id="Value" name="Value">値</h3> <p>新しく作成された空の {{domxref("DocumentFragment")}} オブジェクトで、中にノードが挿入できるものです。</p> <h2 id="Usage_notes" name="Usage_notes">使用上の注意</h2> <p><code>DocumentFragment</code> は DOM の {{domxref("Node")}} オブジェクトですが、メインの DOM ツリーの一部にはなりません。通常の使い方は、文書フラグメントを生成し、その文書フラグメントに要素を追加して、その文書フラグメントを DOM ツリーへ追加することです。 DOM ツリー内では、文書フラグメントはすべての子要素によって置き換えられます。</p> <p>文書フラグメントは<em>メモリ内</em>にあり、メインの DOM ツリーの一部ではないため、文書フラグメントに子要素を追加してもページの<a href="https://developers.google.com/speed/articles/reflow?csw=1">リフロー</a> (要素の位置と大きさを決定するための計算) が行われません。そのため文書フラグメントを利用することによって、<a href="http://ejohn.org/blog/dom-documentfragments/">性能の改善</a>が見込まれます。</p> <p><code>DocumentFragment</code> コンストラクターを使用して新しいフラグメントを生成することもできます。</p> <pre class="brush: js notranslate">let fragment = new DocumentFragment();</pre> <h2 id="Example" name="Example">例</h2> <p>この例では、主要なウェブブラウザのリストを <code>DocumentFragment</code> 内に作成し、表示するドキュメントに新しい DOM サブツリーを追加しています。</p> <h3 id="HTML">HTML</h3> <pre class="brush: html notranslate"><ul id="ul"> </ul></pre> <h3 id="JavaScript">JavaScript</h3> <pre class="brush: js notranslate">var element = document.getElementById('ul'); // ul が存在することを仮定 var fragment = document.createDocumentFragment(); var browsers = ['Firefox', 'Chrome', 'Opera', 'Safari', 'Internet Explorer']; browsers.forEach(function(browser) { var li = document.createElement('li'); li.textContent = browser; fragment.appendChild(li); }); element.appendChild(fragment); </pre> <h3 id="Result" name="Result">結果</h3> <p>{{EmbedLiveSample("Example", 600, 140)}}</p> <h2 id="Specifications" name="Specifications">仕様書</h2> <table class="standard-table"> <thead> <tr> <th scope="col">仕様書</th> <th scope="col">状態</th> <th scope="col">備考</th> </tr> </thead> <tbody> <tr> <td>{{SpecName('DOM WHATWG', '#dom-document-createdocumentfragment', 'Document.createDocumentFragment()')}}</td> <td>{{Spec2('DOM WHATWG')}}</td> <td>DOM 1 仕様書にて初回定義</td> </tr> </tbody> </table> <h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> <div> <div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> <p>{{Compat("api.Document.createDocumentFragment")}}</p> </div> <h2 id="See_also" name="See_also">関連情報</h2> <ul> <li>{{domxref("DOMImplementation.createDocument", "document.implementation.createDocument()")}}</li> <li>{{domxref("documentFragment")}}</li> </ul>