Указывает ли: первое в jquery селектор помогает производительность? - PullRequest
7 голосов
/ 18 мая 2011

Если я знаю, что в моем DOM есть не более 1 такого объекта, я должен всегда добавлять: сначала к селектору, чтобы ускорить поиск? Я предполагаю, что механизм выбора остановится, как только найдет 1 соответствующий элемент, но я не уверен, действительно ли фильтр немного замедляет работу.

Ответы [ 2 ]

6 голосов
/ 18 мая 2011

Нет, так как :first не является стандартным псевдоклассом CSS, и его использование приведет к тому, что ваш селектор не будет передан в нативную функцию querySelectorAll() DOM, реализованную с помощью браузеров (при условии, что вы не используете другиеСинтаксис селектора только для jQuery).

jQuery возьмет весь селектор и проанализирует его сам (скорее всего, с помощью Sizzle), что на несколько лиг медленнее, чем работа браузера.

0 голосов
/ 18 мая 2011

Одна практика, это почти правда; чем больше селекторов вы указываете, тем больше двигатель должен проверять.

Итак, в вашем случае, если вы знаете, что у него есть только один, не указывайте его.

Но с объявлением ниже, скажем, 100, вы даже не заметите его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...