Önemli bir DOM üzerinde çalışırken performans açısından en iyi yanıtı arıyordum .
gözkapaksızlığının cevabı, javascript kullanarak performansın en iyisi olduğuna işaret ediyordu.
Aşağıdaki yürütme süresi testlerini 5.000 satır ve 400.000 karakter üzerinde, bölümün içinde kaldırılacak karmaşık bir DOM bileşimi ile yaptım. JavaScript kullanırken uygun bir nedenle sınıf yerine bir kimlik kullanıyorum.
$ .Unwrap () kullanma
$('#remove-just-this').contents().unwrap();
201,237 ms
$ .ReplaceWith () kullanarak
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156,983 ms
Javascript'te DocumentFragment'ı kullanma
var element = document.getElementById('remove-just-this');
var fragment = document.createDocumentFragment();
while(element.firstChild) {
fragment.appendChild(element.firstChild);
}
element.parentNode.replaceChild(fragment, element);
147,211 ms
Sonuç
Performans açısından, nispeten büyük bir DOM yapısında bile, jQuery ve javascript kullanımı arasındaki fark çok büyük değildir. Şaşırtıcı bir $.unwrap()
şekilde en pahalı olanıdır $.replaceWith()
. Testler jQuery 1.12.4 ile yapılmıştır.