मैं reading about document fragments था और डोम पुनर्प्रवाहित और सोचा कि document.createDocumentFragment
document.createElement
से मतभेद के रूप में ऐसा लगता है कि उनमें से कोई भी डोम में मौजूद जब तक मैं उन्हें एक डोम तत्व को जोड़ देते हैं।मैं का उपयोग करना चाहिए document.createDocumentFragment या document.createElement
मैंने एक परीक्षण (नीचे) किया और उनमें से सभी ने वास्तव में एक ही समय (लगभग 95 मिमी) लिया। अनुमान में यह संभवतः किसी भी तत्व पर लागू शैली के कारण नहीं हो सकता है, इसलिए कोई रिफ्लो नहीं हो सकता है।
वैसे भी, नीचे दिए गए उदाहरण के आधार पर, मुझे 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');
यह jsperf के लिए एक नौकरी की तरह लगता है:
के मामले हैं। हाँ? नहीं? – Nenotlep