Я просмотрел некоторые сайты, и все они говорят об использовании селекторов тегов вместо классов для повышения производительности.
Например, это:
$("input.myclass");
Вместо этого:
$(".myclass");
Например:
- http://www.artzstudio.com/2009/04/jquery-performance-rules/#use-tags-before-classes
- Хорошие способы улучшить производительность селектора jQuery?
- http://www.thewebsqueeze.com/web-design-tutorials/improve-your-jquery-selectors-5-quick-tips.html
Все они утверждали, что в JavaScript есть только getElementById
и getElementsbyTagName
, а не способ прямого выбора классов.
Изменилось ли это за последние 3 года? Теперь они могут выбирать по классам? Я тестировал его с помощью jsperf, и кажется, что селектор классов намного быстрее: http://jsperf.com/class-vs-input
Я также посмотрел на тесты других людей и показал те же результаты: http://jsperf.com/selectors-perf/3
Изменилось ли это за последний год? Должны ли мы теперь выбирать по классу, а не по тегам? Где я могу взглянуть на версии браузеров, изначально реализующих селектор классов?
Спасибо.
$(".demo")
и$("input.demo")
.:checkbox
является псевдоселектором jQuery и неэффективен. Во всяком случае, вы должны были использовать[type="checkbox"]
. Помимо эффективности, я думаю, что при этом важно учитывать, что иногда вам не нужны все элементы определенного класса, вам нужны только те, которые удовлетворяют определенному условию (например, внутри раздел) - person Ian   schedule 17.06.2013input.class
лучше, чем.class
.. jsperf.com/jquery-standards-over-qualified-selectors/2 Пожалуйста, имейте в виду, что поиск выполняется справа налево, и поэтому вы только переоцените его, если используетеinput
и.class
вместе :) - person krishwader   schedule 17.06.2013.test
иinput.test
. - person Ian   schedule 17.06.2013