鍍金池/ 問答/HTML/ 類選擇器效率為什么比元素選擇器高?

類選擇器效率為什么比元素選擇器高?

CSS的選擇器的效率是怎么比較出來的?是根據(jù)查找DOM樹的時(shí)間決定的嗎?


我可不可以理解為

ID選擇器只需遍歷DOM樹找到唯一ID就可以結(jié)束遍歷。

類選擇器要遍歷完所有DOM樹找出所有對(duì)應(yīng)的class類。

所以

ID選擇器效率 > 類選擇器效率


我的理解中,類選擇器和元素選擇器都要遍歷DOM樹。

那么為什么說類選擇器效率要高于元素選擇器?是不是我對(duì)這個(gè)效率的理解不對(duì)。

謝謝解答。

回答
編輯回答
陪妳哭

DOM并不是一顆簡單的多叉樹,而是會(huì)加上各種索引信息。所以很多非層級(jí)操作也能獲得較高的效率。

層級(jí)操作就是在層與層之間執(zhí)行某些操作,比如查找子元素。非層級(jí)操作就是并沒有明確的層級(jí)關(guān)系,因此通常需要遍歷整顆樹或子樹。由于樹的特性,層級(jí)操作效率很高,而非層級(jí)操作在未加索引時(shí)由于需要遍歷的節(jié)點(diǎn)較多,效率并不是很高。

簡單來說,DOM會(huì)為幾種常用屬性添加索引,比如id、class,但不會(huì)為節(jié)點(diǎn)類型(元素名稱)添加索引。

2018年8月17日 12:22