идентификатор против выбора класса - PullRequest
12 голосов
/ 01 апреля 2010

Кто-нибудь отмечал выделение элементов с идентификаторами и классами из CSS и javascript?

Было бы разумно, чтобы элемент с идентификатором выбирался быстрее, чем если бы он имел класс, даже если он был единственным элементом с этим классом.

Мне действительно нужно беспокоиться?

Ответы [ 2 ]

12 голосов
/ 01 апреля 2010

При поиске id селектор остановится, как только найдет совпадение (даже если их много) - я предполагаю, что для этой цели есть какая-то таблица поиска по ключу / значению, так как она намного быстрее, чем Обход DOM. Вот почему , а вот выдержка:

Это все еще много лучше выбрать по идентификатору ... потому что JQuery использует родной браузер метод (getElementByID), чтобы сделать это и не должен делать ничего из своего собственного DOM обход, который намного быстрее.

Связанные результаты показывают> 100-кратное улучшение скорости с id против class.

При поиске class выполняется поиск по всему DOM (или области). Вот тест, использующий область действия .

Вы можете тестировать селекторы в своем браузере здесь .

6 голосов
/ 01 апреля 2010

Я не думаю, что вы должны быть действительно обеспокоены: выбор с помощью id и выбор с помощью class просто не имеют того же значения:

  • Если вы хотите выбрать элемент, зная, как его уникально идентифицировать, используйте его id
  • Если вы хотите выбрать один или несколько элементов, зная, что их может быть больше одного, обратите внимание, что есть способ уникально идентифицировать его / их, используйте class.


Тем не менее, вот эталон, который может вас заинтересовать: Тест селекторов скорости / достоверности для фреймворков.

...