сравнить производительность селекторов jquery - PullRequest
5 голосов
/ 29 октября 2010

Глядя на повышение производительности моих селекторов jquery. так какие-нибудь советы или статьи, как лучшие формантные селекторы jquery? Например, выбрав идентификатор div. В любом месте онлайн я могу предоставить html и сравнить различные селекторы, которые я могу использовать для выбора необходимого элемента.

Ответы [ 4 ]

11 голосов
/ 29 октября 2010

Вы можете сравнить производительность селектора здесь: http://jsperf.com/

Просто настройте свой HTML, включите jQuery и поместите каждый селектор, который вы хотите сравнить, в качестве тестового примера.

Многие из правил здесь все еще применяются, однако игра немного изменилась в jQuery 1.4.3+, после этого Sizzle (механизм выбора jQuery) будет использовать querySelectorAll() в браузерах, которые его поддерживают.

1 голос
/ 29 октября 2010

В этой статье подробно рассматриваются селекторы jQuery и их производительность.В основном это правильное использование jQuery.Поскольку большая часть использования jQuery вращается вокруг селекторов, статья тратит на них некоторое время.

В основном следует запомнить несколько вещей:

  • Если вы ищете производительность, используйте селекторыкоторые делегируют родным методам проверки DOM (getElementById, getElementsByTagName)
  • Результаты кэширования
  • Псевдоселекторы могут вызвать снижение производительности.
0 голосов
/ 30 января 2014

Я заметил, что многие вопросы такого типа ограничены сравнением производительности между различными селекторами jQuery. Недавно я наткнулся на статью, в которой сравниваются селекторы jQuery с их родными аналогами Javascript.

Это может звучать как много хлопот, но прирост производительности довольно существенный. Больше, чем я себе представлял.

Статья: http://www.sitepoint.com/jquery-vs-raw-javascript-1-dom-forms/

0 голосов
/ 02 августа 2013

Одна вещь, которую эти статьи не рассматривают, это то, что является вашей отправной точкой.Если вы начинаете со всего дерева DOM, то эти статьи действительно полезны.

Однако, если у вас есть элемент для начала, это зависит от того, что вы ищете.Большая часть моего динамического JavaScript с шаблонами MVC имеет тенденцию захватывать элемент, над которым выполняется действие, а затем выполнять поиск родительских объектов.Это устраняет необходимость уникального именования контейнеров, когда они генерируются случайным образом - значительно упрощает задачу с точки зрения динамического развития.

Хотя поиск близлежащего узла может быть не таким быстрым, как поиск идентификатора, производительность должна быть незначительной по сравнению с количеством времени и / или производительностью генерации и отслеживания ряда уникальных идентификаторов.

Как и все в разработке, здесь будет царить "все зависит".

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