Saya sedang membaca tentang fragmen dokumen dan perubahan posisi DOM dan bertanya-tanya seberapa document.createDocumentFragment
berbeda dari document.createElement
yang terlihat seperti keduanya tidak ada di DOM sampai saya menambahkannya ke elemen DOM.
Saya melakukan tes (di bawah) dan semuanya membutuhkan waktu yang sama persis (sekitar 95ms). Diperkirakan, hal ini mungkin karena tidak ada gaya yang diterapkan ke salah satu elemen, jadi mungkin tidak ada perubahan posisi.
Bagaimanapun, berdasarkan contoh di bawah ini, mengapa saya harus menggunakan createDocumentFragment
daripada createElement
saat memasukkan ke dalam DOM dan apa perbedaan antara keduanya.
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');