ฉันกำลังมองหาคำตอบที่มีประสิทธิภาพสูงสุดในขณะที่ทำงานกับ DOM ที่สำคัญ
คำตอบของการไม่มีเปลือกตาชี้ให้เห็นว่าการใช้จาวาสคริปต์จะดีที่สุด
ฉันได้ทำการทดสอบเวลาดำเนินการต่อไปนี้ใน 5,000 บรรทัดและ 400,000 ตัวอักษรโดยมีองค์ประกอบ DOM ที่ซับซ้อนภายในส่วนที่จะลบ ฉันใช้ ID แทนคลาสเพื่อความสะดวกในการใช้จาวาสคริปต์
ใช้ $ .unwrap ()
$('#remove-just-this').contents().unwrap();
201.237 มิลลิวินาที
ใช้ $ .replaceWith ()
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156.983 มิลลิวินาที
การใช้ DocumentFragment ใน 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.211 มิลลิวินาที
สรุป
ประสิทธิภาพที่ชาญฉลาดแม้ในโครงสร้าง DOM ที่ค่อนข้างใหญ่ความแตกต่างระหว่างการใช้ jQuery และ javascript นั้นไม่มาก น่าแปลกที่เป็นค่าใช้จ่ายมากที่สุดกว่า$.unwrap()
$.replaceWith()
ทำการทดสอบด้วย jQuery 1.12.4