重要なDOMに取り組みながら、パフォーマンスに関して最良の答えを探していました。
まぶたのない答えは、javascriptを使用するとパフォーマンスが最高になることを指摘していました。
削除するセクション内の複雑なDOM構成で、5,000行と400,000文字に対して次の実行時間テストを行いました。私は、JavaScriptを使用する際の便利な理由で、クラスの代わりにIDを使用しています。
$ .unwrap()の使用
$('#remove-just-this').contents().unwrap();
201.237ms
$ .replaceWith()の使用
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156.983ms
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.211ms
結論
パフォーマンスに関しては、比較的大きなDOM構造であっても、jQueryとjavascriptの使用の違いはそれほど大きくありません。驚くべきことに$.unwrap()
、よりも高価です$.replaceWith()
。テストはjQuery 1.12.4で行われました。