2010-03-08 1 views
3

У меня есть веб-приложение, которое очень сильно зависит от jquery/javascript, и его иногда немного медленнее. Одна из вещей, что делается часто являются изменениями в сетке (jqGrid), что означает каждый раз, когда я использую JQuery, чтобы выбрать этот объект, то есть:оптимизация jQuery - что-то не так с сохранением ссылки на объект jquery?

function load_editor() { $('#listview').jqGrid(do_stuff); } 

Я считаю, просто хранящей ссылку на $ ('# listview ') - поскольку его использование в полдюжины функций - будет быстрее. Так есть ли недостаток настраивая это так:

listview = $('#listview'); 
function load_editor() { listview.jqGrid(do_stuff); } 

Казалось бы, таким образом, общие объекты уже находятся в памяти, а также не несут наказание от поиска на каждом использовании. Есть ли недостаток в структурировании таким образом?

(я знаю, в моих примерах, я выбрасывая глобальный. Его все хорошо воплощен в объекте в реальном проекте, я просто я использую эти примеры, чтобы проиллюстрировать мою точку зрения.)

ответ

4

Absolutely you should.

И я настоятельно рекомендую вам следовать стилю связанной статьи - укажите переменные объекта jQuery с префиксом $. Знание того, какие из ваших переменных являются объектами jQuery, просто взглянув на них, будет очень полезно вам, когда ваш проект станет большим.

+1

Я согласен с соглашением о назначении именования - вообще-то я действительно не люблю такие соглашения, но я обнаружил, что он серьезно снижает мой уровень замешательства, когда я работаю с кодом jQuery-javascript. – Pointy

+0

@ Понятно, что при использовании ответственно. –

+0

Я не говорил, что с ним что-то не так - мне лично это не нравится :-) – Pointy

2

Там в ничего плохого в этом, и на самом деле это отличная идея в критическом коде. Тем не менее, двигатель Sizzle работает очень быстро, поэтому вам следует подумать о том, какой тип беспорядка вы можете использовать с большим количеством таких переменных, и стоит ли его преимущество в производительности.

Конечно, если ваш DOM сильно меняется, вам нужно быть осторожным, чтобы сохраненные вами данные сохранялись в рамках обновлений DOM.