documentFragment
DocumentFragment
메모리상에만 존재하는 경량화된 DOM
이다
1. DocumentFragment
를 DOM
노드에 추가한다고 해도 DocumentFragment
노드는 등록되지 않고 그 자식 노드들만 추가됩니다.
2. DocumentFragment
를 DOM
에 추가하면 DocumentFragment
노드의 자식 요소들은 더 이상 메모리상에 존재하지 않습니다.
주의사항
DocumentFragment
를 appendChild
와 같은 함수로 DOM
에 추가하고 난 후 DocumentFragment
의 자식노드는 더 이상 생성한 메모리 상의 위치에 존재하지 않습니다. 만약 이를 유지 시키고 싶다면 cloneNode
를 통해 복제하는 방법이 있습니다.
<div class="container"></div>
<div class="container"></div>
<div class="container"></div>
<script>
const frag = document.createDocumentFragment();
for (let i = 0; i < 100; i++) {
const el = document.createElement("div");
frag.appendChild(el);
}
const cont = document.querySelectorAll(".container");
console.log(frag.baseURI)
for (let i = 0; i < cont.length; i++) {
cont[i].appendChild(frag.cloneNode(true));
}
</script>
참고
'JS > JS 핵심 개념' 카테고리의 다른 글
JS 이벤트 위임 (0) | 2023.03.14 |
---|---|
JS 이벤트 흐름 (0) | 2023.03.14 |
JS reflow & repaint (0) | 2023.03.14 |
JS 웹 페이지 렌더링 과정 (1) | 2023.03.14 |
JS BOM (Browser Object Model) (0) | 2023.03.14 |