मैं एक महत्वपूर्ण DOM पर काम करते हुए सर्वश्रेष्ठ उत्तर प्रदर्शन-वार की तलाश कर रहा था ।
पलकहीनता का जवाब इस ओर इशारा कर रहा था कि जावास्क्रिप्ट का उपयोग करना सबसे अच्छा होगा।
मैंने हटाने के लिए निम्नलिखित निष्पादन समय परीक्षण 5,000 लाइनों और 400,000 वर्णों के साथ एक जटिल DOM संरचना के साथ किया है। मैं जावास्क्रिप्ट का उपयोग करते समय सुविधाजनक कारण के लिए एक वर्ग के बजाय एक आईडी का उपयोग कर रहा हूं।
$ .Unwrap () का उपयोग करना
$('#remove-just-this').contents().unwrap();
201.237ms
$ .ReplaceWith () का उपयोग करना
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156.983ms
जावास्क्रिप्ट में DocumentFragment का उपयोग करना
var element = document.getElementById('remove-just-this');
var fragment = document.createDocumentFragment();
while(element.firstChild) {
fragment.appendChild(element.firstChild);
}
element.parentNode.replaceChild(fragment, element);
147.211ms
निष्कर्ष
प्रदर्शन-वार, अपेक्षाकृत बड़े DOM संरचना पर भी, jQuery और जावास्क्रिप्ट का उपयोग करने के बीच का अंतर बहुत बड़ा नहीं है। हैरानी $.unwrap()
की बात है की तुलना में सबसे महंगा है $.replaceWith()
। परीक्षण jQuery 1.12.4 के साथ किया गया है।