나는 한 문서 조각에 대한 읽기 및 DOM 리플 로우 방법 궁금 document.createDocumentFragment에서 차이가 document.createElement나는 DOM 요소를 추가 할 때까지 둘 중이 DOM에 존재하지 않는 것처럼 보이는.
테스트 (아래)를했는데 모두 정확히 같은 시간 (약 95ms)이 걸렸습니다. 아마도 이것은 요소에 적용된 스타일이 없기 때문일 수 있으므로 리플 로우가 없을 수도 있습니다.
어쨌든 아래 예제를 기반으로 DOM에 삽입 할 때 createDocumentFragment대신 사용해야 하는 이유 createElement와 둘 사이의 차이점은 무엇입니까 ?
var htmz = "<ul>";
for (var i = 0; i < 2001; i++) {
htmz += '<li><a href="#">link ' + i + '</a></li>';
}
htmz += '<ul>';
//createDocumentFragment
console.time('first');
var div = document.createElement("div");
div.innerHTML = htmz;
var fragment = document.createDocumentFragment();
while (div.firstChild) {
fragment.appendChild(div.firstChild);
}
$('#first').append(fragment);
console.timeEnd('first');
//createElement
console.time('second');
var span = document.createElement("span");
span.innerHTML = htmz;
$('#second').append(span);
console.timeEnd('second');
//jQuery
console.time('third');
$('#third').append(htmz);
console.timeEnd('third');