jQuery tips: ใช้ IDs แทน Classes เวลาใช้ Selector

มาดูวิธีการเพิ่มความเร็วให้กับการทำงานของ jQuery อีกวิธี ในการใช้งาน selector นั่นก็คือ การใช้ select โดยใช้ ID แทนที่จะใช้ Class ครับ แล้วมันเร็วขึ้นแค่ไหนล่ะ ลองเอาโค้ดไปทดสอบดูนะครับ วิธีทดสอบเราจะสร้างแท็ก ul ขึ้นมาโดยมีแท็ก li ซัก 1000 แท็ก แล้วลองดึงแต่ละแท็กด้วย ID และ Class เปรียบเทียบกันดู

1. ใช้ Class

// Create our list
var myList = $('.myList');
var myListItems = '<ul>';
for (i = 0; i < 1000; i++) {
 myListItems += '<li>This is a list item</li>';
}
myListItems += '</ul>';
myList.html(myListItems);
// Select each item once
for (i = 0; i < 1000; i++) {
 var selectedItem = $('.listItem' + i);
}

ซึ่งจะใช้เวลาประมาณ 5000 กว่ามิลลิวินาที (ms)�� หรือ ประมาณ 5 วินาทีครับ

2. ใช้ ID

// Create our list
var myList = $('.myList');
var myListItems = '<ul>';
for (i = 0; i < 1000; i++) {
 myListItems += '<li id="listItem' + i + '">This is a list item</li>';
}
myListItems += '</ul>';
myList.html(myListItems);
// Select each item once
for (i = 0; i < 1000; i++) {
 var selectedItem = $('#listItem' + i);
}

แต่ถ้าใช้ ID จะใช้เวลาในการทำงานประมาณ 60 มิลลิวินาที (ms) ประมาณ 0.06 วินาทีครับ

เร็วกว่ากันเยอะเลยนะเนี๊ย ^^

ขอขอบคุณแหล่งข้อมูลครับ