идентификатор по сравнению со сравнительным тестом выбора класса

У кого-либо есть место размещения, отмеченное, выбирая элементы с идентификатором и классом из CSS и JavaScript?

Это имело бы смысл, который элемент с идентификатором быстрее, чтобы выбрать, чем если бы это имело класс, даже если это был единственный элемент с тем классом.

Я должен действительно быть заинтересован?

12
задан zaf 1 April 2010 в 11:14
поделиться

2 ответа

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

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

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

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

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

12
ответ дан 2 December 2019 в 19:31
поделиться

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

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


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

6
ответ дан 2 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: