Вообще говоря, вам нужно будет «кэшировать» результаты селектора, если вы уверены, что они не будут меняться.
Ваш пример довольно тривиален в том, что селектор #idуже достаточно эффективен (по сути, он просто передает его прямо на вызов document.getElementById()
.
. Как уже упоминали другие, вы начинаете видеть экономию, когда используете менее производительные селекторы (такие как $('.class')
).
Используя переменные таким образом, вы можете сэкономить много дополнительной обработки, например:
var tree = $('.bigTree');
// Do random stuff with tree
// ...
var segment = tree.find('.subsection');
// Do random stuff with segment...
В приведенном выше примере переменная «сегмент» может использоватьрезультаты дерева переменных без необходимости повторного доступа ко всему DOM, что экономит вам часть производительности. Хотя такие простые примеры редко стоят усилий, убедитесь, что вы делаете такие вещи для фрагментов кода (таких какциклы) может помочь значительно ускорить ваше приложение.
Конечно, убедитесь, что, если вы динамически обновляете DOM, вы используете "свежие"избиратель, чтобы убедиться, что вы забрать любые изменения:)