В настоящее время я пишу свой bachelorthesis о webperformance и натолкнулся на некоторые результаты, которых я не ожидал.jquery class-selector vs квалифицированный селектор классов
Как и сам польский ирландский или jquery, рекомендуется всегда спускаться с идентификатора.
http://learn.jquery.com/performance/optimize-selectors/
Так что я бы ожидал, что $ (». Класс ') должен быть ниже, чем $ (' # идентификатор класса ') или $ (' # идентификатор '). Найти ('. Класс) ,
Я испытал это на JSPerf и пришли к довольно межжала результат:
Results http://fs1.directupload.net/images/141230/5euuefin.png
Похоже, что это действительно зависит от браузера, но я действительно не ожидал, что $ ('.class'), чтобы работать так хорошо, особенно в Chrome, это намного быстрее, чем те, кто сходит с id.
Что имеет смысл для меня, это следующее объяснение, но почему разница настолько велика в этих браузерах. Являются ли двигатели такими разными?
Разница заключается в использовании одного класса или поиска идентификатора, getElementsByClassName и getElementById, которые быстрее, чем querySelector. В современных браузерах вы увидите, что в 10 раз быстрее.
Источник: http://jsperf.com/jquery-class-vs-tag-qualfied-class-selector/38
Так что ваше мнение по этому поводу?
Это (сильно) указывает, что современные браузеры также кэшируют записи классов (а также их обычную быструю таблицу поиска ID). Любые дополнительные накладные расходы на код (добавление поиска по идентификатору) замедляют работу. Приятно знать. –
Добавлен ответ на единственный реальный вопрос ниже, поскольку вы выставили действительно полезную информацию. +1 :) –