在研究重要的DOM时,我一直在寻找最佳的性能答案。
眼睑失明的答案指出,使用javascript效果最佳。
我对要删除的5,000行和40万个字符进行了以下执行时间测试,并在其中添加了复杂的DOM组成。出于方便原因,在使用javascript时,我使用的是ID而不是类。
使用$ .unwrap()
$('#remove-just-this').contents().unwrap();
201.237毫秒
使用$ .replaceWith()
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156.983毫秒
在JavaScript中使用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.211毫秒
结论
在性能方面,即使在相对较大的DOM结构上,使用jQuery和javascript之间的差异也不是很大。出人意料的$.unwrap()
是比$.replaceWith()
。测试已使用jQuery 1.12.4完成。