Tôi đang tìm kiếm câu trả lời tốt nhất về hiệu suất khi làm việc trên một DOM quan trọng.
câu trả lời của người không có mí mắt đã chỉ ra rằng sử dụng javascript thì các buổi biểu diễn sẽ là tốt nhất.
Tôi đã thực hiện các bài kiểm tra thời gian thực thi sau trên 5.000 dòng và 400.000 ký tự với thành phần DOM phức tạp bên trong phần cần xóa. Tôi đang sử dụng ID thay vì lớp vì lý do thuận tiện khi sử dụng javascript.
Sử dụng $ .unwrap ()
$('#remove-just-this').contents().unwrap();
201.237ms
Sử dụng $ .replaceWith ()
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156,983ms
Sử dụng DocumentFragment trong javascript
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
Phần kết luận
Về hiệu suất, ngay cả trên một cấu trúc DOM tương đối lớn, sự khác biệt giữa việc sử dụng jQuery và javascript là không lớn. Đáng ngạc nhiên $.unwrap()
là tốn kém nhất $.replaceWith()
. Các bài kiểm tra đã được thực hiện với jQuery 1.12.4.