Большинство внутренних компонентов jQuery являются частными анонимными функциями. Я не вижу, как вы можете профилировать это. (Я тоже пытался, но безуспешно).
Sizzle - это механизм выбора , обеспечивающий работу jQuery. И я подозреваю, что Sizzle часто использует filter () при запросах DOM, используя более сложные селекторы.
Так что, по крайней мере, эти вызовы функций в порядке, работают так, как задумано, и максимально оптимизированы с точки зрения скорости.
Обновление:
Это реализация функции dir()
:
jQuery.dir = function( elem, dir ){
var matched = [], cur = elem[dir];
while ( cur && cur != document ) {
if ( cur.nodeType == 1 )
matched.push( cur );
cur = cur[dir];
}
return matched;
};
nodeType
1 - это ELEMENT_NODE
. Функция dir()
фильтрует (или «очищает», если хотите) набор результатов данного запроса, чтобы убедиться, что возвращаются только элементы DOM, а не атрибуты, текстовые узлы и так далее. (Погода dir()
исполняется, скорее всего, определяется Sizzle).
Подытожить:
Вы не можете пропустить ни одну из этих функций, так как они являются ядром реальной возможности овладеть чем-либо в DOM. (Делаем запрос).
Каждый раз, когда вы запрашиваете DOM ($("#something")
), эти функции будут выполняться. В простых запросах может быть выполнена только одна или две из трех функций. Это, вероятно, причина, почему есть различия в количестве звонков.
Как указывает Chetan Sastry : вы можете значительно повысить производительность, кешируя свои запросы и так далее. Взгляните на этот пост , чтобы узнать о некоторых хитростях jQuery.