2010-04-01 33 views
11

有沒有人用bench和bench標記過從CSS和javascript中選擇id和class的元素?id與類選擇基準

這將是有道理的是,具有ID的元素比具有該類的元素更快,即使它是唯一具有該類的元素。

我真的需要關心嗎?

回答

10

當一個id搜索,因爲它找到了一個匹配(即使有很多)選擇將盡快停止 - 我認爲有一些鍵/值查找表用於此目的,因爲它比DOM遍歷要快得多。 Here's why,這裏是一個摘錄:

它還有很多 更好地ID選擇......因爲 jQuery使用瀏覽器的原生 法(的getElementById)來做到這一點, 沒有做任何的它是自己的DOM 遍歷,這要快得多。

鏈接的結果顯示> 100x速度改善idclass

當搜索class時,搜索整個DOM(或範圍)。 Here's a benchmark using scope

您可以在您自己的瀏覽器中對基準選擇器進行基準測試here

+0

您可以用引用來支持它嗎? – zaf 2010-04-01 11:25:35

+1

即使「:first」用作選擇器,也會搜索整個DOM? >< – Matt 2010-04-01 11:26:00

+0

@Matt,這是jQuery,而不是javascript;) – Andy 2010-04-01 11:28:18

6

我不認爲你應該是真的那麼關心:選擇由id和選擇通過class只是不具有相同的含義:

  • 如果你想選擇一個元素,知道如何唯一識別它,使用它
  • 如果你想選擇一個或多個元素,知道可能有多個元素,請注意有一種方法來唯一標識它/他們,使用class


不過,這裏有可能你感興趣的基準:Speed/validity selectors test for frameworks.

+0

感謝您的鏈接 - 消化數據可能需要一些時間!我傾向於過度使用適合我的'課堂',因此是個問題。 – zaf 2010-04-01 11:24:11

+0

鏈接爲+1 – pixeltocode 2010-04-01 13:07:15