Быстрее ссылаться на объекты jQuery (в основном объекты DOM) только по имени переменной или по $? - PullRequest
1 голос
/ 22 сентября 2010

Проще говоря:

Это:

var x = $('#selector-id');
x.slideDown();

Быстрее чем:

var x = $('#selector-id');
$(x).slideDown();

Ответы [ 4 ]

2 голосов
/ 22 сентября 2010

Вторая версия клонирует объект jQuery ... на самом деле, без причины, так что да, первая и быстрее, и эффективнее (менее затратно).

2 голосов
/ 22 сентября 2010

Второй пример не имеет смысла, так как x уже является объектом jQuery.

Было бы более разумно, если бы вы сделали:

var selector_string = '#selector-id';
$(selector_string).slideDown();

, но это определеннобудьте медленнее, чем первый вариант, так как вы будете получать доступ к DOM и создавать новый объект jQuery каждый раз, когда вы его используете.

0 голосов
/ 22 сентября 2010

помните, что просто замедляет ваш JavaScript, чем больше вы получаете доступ к DOM, тем менее эффективным он становится.

ниже приведено несколько примеров

var _elm= jQuery('.myElement');
_elm.DoThis();
_elm.DoThat();

выше 2 будет быстрее, чем написано ниже 2

jQuery('.myElement').DoThis();
jQuery('.myElement').DoThat();

// Вы можете использовать профилировщик firebug для проверки этого.

0 голосов
/ 22 сентября 2010

Теоретически это быстрее, потому что делает на один вызов меньше. Практически вы никогда бы не написали второе, потому что x уже является объектом jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...