Id против теста выбора класса
Есть ли кто-нибудь на скамейке, отмеченный выбором элементов с id и классом из CSS и javascript?
Было бы разумно, что элемент с id быстрее выбирает, чем если бы он имел класс, даже если он был единственным элементом с этим классом.
Мне действительно нужно быть обеспокоенным?
Ответы
Ответ 1
При поиске id
селектор остановится, как только найдет совпадение (даже если их много). Я предполагаю, что для этой цели есть какая-то таблица поиска ключей/значений, так как она намного быстрее, чем Обход DOM. Вот почему, а вот отрывок:
Это еще много лучше выбрать по ID... потому что jQuery использует родной браузер метод (getElementByID) для этого и не нужно делать какие-либо из его собственных DOM обход, который намного быстрее.
Связанные результаты показывают > улучшение скорости 100x с помощью id
vs class
.
При поиске class
выполняется поиск всей DOM (или области). Здесь используется эталон с использованием области.
Вы можете сравнить селекторы в своем собственном браузере здесь.
Ответ 2
Я не думаю, что вы должны быть действительно заинтересованы: выбор id
и выбор class
просто не имеют того же значения:
- Если вы хотите выбрать элемент, зная, как его однозначно идентифицировать, используйте его
id
- Если вы хотите выбрать один или несколько элементов, зная, что их может быть несколько, обратите внимание, что они имеют возможность однозначно идентифицировать его/их, используйте
class
.
Тем не менее, здесь вам может быть интересен эталон: Тесты выбора скорости/валидности для фреймворков.