У меня возникла ситуация, когда мне интересно, какой лучший подход подходит для производительности.jQuery class selector vs cached element + find
У меня есть название класса, назовем его .class-test. У меня также есть кешированный элемент, $ body.
можно либо извлечь .class-тест элемент по:
$('.class-test')
или
$body.find('.class-test')
В наихудшем сценарии, делает один из этих подходов верх над другой? Кроме того, если кто-то может описать, что делается под капотом, второй подход, который был бы велик (т. Е. Я знаю, что .find подчиняется Sizzle, но если элемент кэширован, у него уже есть дерево его элементов DOM, то нужно только пересечь это поддерево, чтобы найти класс? или это дерево только построено по мере необходимости?).
Попробуйте здесь http://jsperf.com/ – elclanrs
Если вы не смотрите на тысячи элементов, вы никогда не заметите разницы. – adeneo
Да, именно поэтому я сказал худший случай. Поскольку большинство показателей производительности jQuery основаны на использовании тысяч элементов. Мне также было бы интересно узнать, что происходит под капотом второго подхода. – Leonidas