Ошибки и советы по использованию jQuery
Элементы DOM надо выбирать только один раз, и сохранять в переменную
// неправильно $("#obj").addClass("selected"); $("#obj").removeClass("selected"); // правильно var obj = $("#obj"); obj.addClass("selected"); obj.removeClass("selected");
В первом случае, JavaScript несколько раз обходит DOM для повторной выборки объекта #obj
, когда во втором случае объект #obj
выбирается только один раз. Производительность данного примера может быть заметна в данном коде:
// неправильно for (var i = 0; i < 1000; i++) { $("#obj").addClass("#obj"); } // правильно var obj = $("#obj"); for (var i = 0; i < 1000; i++) { obj.addClass("#obj"); }
В первом примере объект #obj
каждый раз заново выбирается 1000 раз, когда во втором примере объект #obj
выбирается только один раз.
Делать выборку по id
Самый быстрый способ выбрать элемент, это выбрать его по атрибуту id
.
$("#obj");
Если надо выбрать объект по классу, то перед классом рекомендуется указывать id
.
$(".list"); // не рекомендуется $("#obj .list"); // рекомендуется
В первом случае jQuery будет искать все элементы с классом list
. Во втором случае jQuery будет искать элементы с классом list
только внутри элемента с ид obj
.
Стоит обратить внимание, что выборка #obj .list
работает быстрее, чем #obj li.list
.
Также можно сразу сохранить элемент в переменной, и уже искать объекты внутри переменной.
// неправильно $("#obj .list"); $("#obj .images"); // правильно var obj = $("#obj"); $(".list", obj); $(".images", obj);
Выборка ".list", obj
работает быстрее, чем #obj .list
.
Быстродействие кода
Для быстродействия можно использовать следующий код:
- Вместо
addClass()
использоватьattr("class", "class-name")
, когда есть возможность; - Вместо
show()
илиhide()
использоватьcss("display", "block")
илиcss("display", "none")
.
Поддержать автора