ช่วงนี้กำลังสนใจเรื่อง Performance ของโค๊ดที่เขียนขึ้นมา เลยนึกสงสัยว่าฟังก์ชั่น jQuery ทั้งสามฟังก์ชั่นนี้ จะเลือกใช้แบบไหนดี html(''), remove(), empty()
โค๊ดตัวอย่าง
ผลลัพธ์ที่ผมต้องการก็คือ ต้องการลบข้อมูล div ที่ id="main" ให้เป็นค่าว่าง
ทางเลือกก็คือ
ซึ่งจากการค้นหาข้อมูลดูแล้ว ก็ได้ข้อสรุปว่า
ทำงานเร็วที่สุดครับ
แต่ถ้าเรากำหนด id ให้กับเป้าหมายด้วยแล้วการใช้ remove() กับเป้าหมายไปเลยก็จะเร็วกว่าครับ
แต่ถ้า ไม่ได้กำหนด id ให้กับเป้าหมายไว้ เราก็ต้องอ้างจาก main แล้วค้นหาอีเลเมนต์ทั้งหมด
แบบนี้จะช้านะครับ คงจะเพราะว่าเสียเวลากับการค้นหา children
อ้างอิง
Jquery Difference .html("") vs .empty()
http://stackoverflow.com/questions/17543711/jquery-difference-html-vs-empty
Jquery empty() vs children().remove()
https://jsperf.com/jquery-empty-vs-children-remove
http://jsperf.com/jquery-empty-vs-children-remove/8
โค๊ดตัวอย่าง
<div id="main">
<div id="list">
<ul>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
</div>
</div>
ผลลัพธ์ที่ผมต้องการก็คือ ต้องการลบข้อมูล div ที่ id="main" ให้เป็นค่าว่าง
ทางเลือกก็คือ
1) $('#main').html('');
2) $('#main').empty('');
ซึ่งจากการค้นหาข้อมูลดูแล้ว ก็ได้ข้อสรุปว่า
$(element).empty();
ทำงานเร็วที่สุดครับ
แต่ถ้าเรากำหนด id ให้กับเป้าหมายด้วยแล้วการใช้ remove() กับเป้าหมายไปเลยก็จะเร็วกว่าครับ
3) $('#list').remove('');
แต่ถ้า ไม่ได้กำหนด id ให้กับเป้าหมายไว้ เราก็ต้องอ้างจาก main แล้วค้นหาอีเลเมนต์ทั้งหมด
$('#main').children().remove()
แบบนี้จะช้านะครับ คงจะเพราะว่าเสียเวลากับการค้นหา children
อ้างอิง
Jquery Difference .html("") vs .empty()
http://stackoverflow.com/questions/17543711/jquery-difference-html-vs-empty
Jquery empty() vs children().remove()
https://jsperf.com/jquery-empty-vs-children-remove
http://jsperf.com/jquery-empty-vs-children-remove/8
ความคิดเห็น
แสดงความคิดเห็น