innerHTML
M93a නිවැරදිව සඳහන් කර ඇති පරිදි දැනට පිළිගත් පිළිතුර මන්දගාමී වීම (අවම වශයෙන් IE සහ Chrome හි) වැරදිය.
මෙම ක්රමය භාවිතා කරමින් ක්රෝම් සහ එෆ්එෆ් නාටකාකාර ලෙස වේගවත් වේ (එමඟින් අමුණා ඇති jquery දත්ත විනාශ වනු ඇත):
var cNode = node.cloneNode(false);
node.parentNode.replaceChild(cNode, node);
FF සහ Chrome සඳහා second ත තත්පරයකින් සහ IE හි වේගවත්ම:
node.innerHTML = '';
InnerHTML ඔබේ සිදුවීම් හසුරුවන්නන් විනාශ නොකරනු ඇත , jquery යොමු කිරීම් බිඳ දමන්නේ නැත , එයද මෙහි විසඳුමක් ලෙස නිර්දේශ කෙරේ:
https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML .
වේගවත්ම DOM හැසිරවීමේ ක්රමය (පෙර දෙකට වඩා මන්දගාමී වේ) පරාසය ඉවත් කිරීම වේ, නමුත් IE9 තෙක් පරාසයන්ට සහය නොදක්වයි.
var range = document.createRange();
range.selectNodeContents(node);
range.deleteContents();
සඳහන් කර ඇති අනෙක් ක්රම සැසඳිය හැකි බව පෙනේ, නමුත් අභ්යන්තර HTML වලට වඩා මන්දගාමී වේ, පිටස්තරයා හැර, jquery (1.1.1 සහ 3.1.1), එය අන් සියල්ලටම වඩා මන්දගාමී ය:
$(node).empty();
මෙහි සාක්ෂි:
http://jsperf.com/innerhtml-vs-removechild/167 http://jsperf.com/innerhtml-vs-removechild/300
https://jsperf.com/remove-all-child-elements-of-a- dom-node-in-javascript
(පැරණි url සංස්කරණය කිරීම ක්රියා නොකරන බැවින් jsperf නැවත ආරම්භ කිරීම සඳහා නව url)
Jsperf ගේ “per-test-loop” බොහෝ විට “per-iteration” ලෙස වටහා ගත හැකි අතර, ඉවත් කිරීමට පළමු පුනරාවර්තනයට පමණක් නෝඩ් ඇති බැවින් ප්රති results ල අර්ථ විරහිත වේ, පළ කරන අවස්ථාවේදී මෙම ත්රෙඩ් එකේ වැරදි ලෙස සකසා ඇත.