Что такое недостатки и преимущества цепочки методов в jQuery?Что такое недостатки и преимущества цепочки методов в jQuery?
Это быстрее, чем повторное объявление селектора?
Что такое недостатки и преимущества цепочки методов в jQuery?Что такое недостатки и преимущества цепочки методов в jQuery?
Это быстрее, чем повторное объявление селектора?
Скорее всего, преимущества,
, что это делает ваш код коротким и легко manage.It дает лучшую производительность (быстрее). И цепь начинается слева направо. Поэтому большинство остальных будет называться первым и так далее.
При использовании цепочки JQuery должен найти элементы один раз, и он выполнит все связанные функции один за другим.
Недостатком цепочки может быть чрезмерное использование излишков, что может привести к ухудшению производительности.
например: - Код 1:
$(document).ready(function(){
$('#myContent').addClass('hello');
$('#myContent').css('color', 'blue');
$('#myContent').fadeOut('fast');
});
Код 2:
$(document).ready(function(){
$('#myContent').addClass('hello')
.css('color', 'blue')
.fadeOut('fast');
});
Оба эти кода делает то же самое. и код 2 использует цепочку, и он быстрее и короче в коде. И в Code 1 JQuery должен выполнить поиск по всей DOM, чтобы найти элемент, и после этого он выполняет функцию на нем.
Я понимаю, что вы получаете, но говоря, что jQuery «должен искать всю DOM» в первом примере немного вводит в заблуждение ... внутренне jQuery будет просто называть getElementById() в этом случай, который является очень быстрой операцией, хотя это все равно похоже на поиск массива, поэтому второй пример очень мал. Это будет иметь большее значение с селекторами классов и другими более сложными селекторами, особенно в старых браузерах. –
Преимущества метода: цепочки
$(this).next().find("span.title").closest(".section").hide();
. Без цепочки вам понадобится четыре разных локальных переменных, где этого не потребуется.Недостатки цепочки:
Спасибо за ваш ответ jfriend –
Да, это может быть быстрее, но не по сравнению с хранением объекта jQuery в переменной, что так же быстро.
например.это:
var elements = $('.myClass').find('p');
elements.next()
должен быть столь же быстро, как это:
$('.myClass').find('p').next()
Большую часть времени это сводится к читаемости ... иногда метод цепочки делает код более удобным для чтения, но если вы получаете унесенный, он может сделать это меньше читаемый.
благодарит вас за ответ Matt B. –
Чтобы сделать это более конкретным вопросом: цепочка * в отличие от чего? * – deceze
Я сказал на второй строке, напротив повторного объявления селектора. –
Как насчет 'i = $ ('foo'); i.bar(); i.baz(); '? Вы считаете эту цепочку? Потому что это просто длинная рука для цепных операций. – deceze