Какие быстрые подсказки для повышения производительности jQuery?
Каковы некоторые быстрые советы по увеличению производительности jQuery?
Ответ 1
- Предпочитает простой выбор сначала только по идентификатору, а второй - только тегом . Выбор по имени класса или селектору CSS требует, чтобы jQuery проходил DOM, а идентификатор и тег отображались в "родные" функции DOM браузера (getElementById и getElementByTagName).
- Кэш ваших объектов jQuery как можно больше.
- Scope ваши операции с объектом root jQuery. Вместо того, чтобы выбирать элементы отдельно, выберите общий элемент предка и используйте функцию
find
, чтобы найти элементы в пределах области этих элементов. Это действительно оптимально, если вы все равно выполняете некоторые операции с общим предком; в противном случае накладные расходы, связанные с поиском предка и кэшированием, могут перевесить преимущества обхода области. - Не используйте
$.each()
, вместоfor(;;)
. Это более чем в десять раз быстрее.
Ответ 2
Пол Ирланд недавно выступил с презентацией о производительности на jQuery Conference 2009. Слайды - одни из самых полных, которые я видел.
http://paulirish.com/perf/
http://www.slideshare.net/paul.irish/perfcompression
Ответ 3
Справочные файлы на google CDN, чтобы они загружались быстрее.
Ответ 4
Вместо того, чтобы делать:
$("#foo").addClass('test');
$("#foo").removeClass("bar");
$("#foo").slideUp('slow');
вы можете сделать:
$("#foo").addClass('test').removeClass('bar').slideUp('slow');
Ответ 5
он всегда применяется к общему javascript: всегда кэш, кэш, кэш например:.
var $this = $(this);
$this.css('width', parseInt($this.css('width')) + 20 + 'px');
Ответ 6
Невозможно увеличить скорость jQuery, это действительно зависит от того, насколько эффективен ваш код, насколько эффективен интерпретатор JS браузера и насколько быстро работает компьютер с кодом. Возможно, вы попытаетесь переписать jQuery, чтобы сделать его более эффективным, но это займет время, и оно, скорее всего, уже полностью оптимизировано.
Ответ 7
Один из лучших способов обеспечить эффективность - убедиться, что * селектор нацелен на элемент/класс и т.д., насколько это возможно.
* $(Селектор)
Ответ 8
Знайте, когда использовать простой JavaScript вместо методов JQuery.
jQuery является дополнением к JS + DOM, а не полной заменой. Вам не нужно использовать jQuery для каждой строки кода, который вы пишете. Некоторые вещи более кратко выражаются без него; многие вещи быстрее без него. Узнайте, что делает DOM, поэтому вы не можете написать несколько более глупых примеров, которые я видел здесь.
например:.
var ix= $('#'+selectname).children().index($('#'+selectname+' option:selected'));
быстрее, легче читать, не прерывается с неожиданными символами в ID:
var ix= document.getElementById(selectname).selectedIndex;
Ответ 9
Я думаю, что вы просите оптимизацию кода, но поскольку производительность сильно зависит от используемого JavaScript-Engine, я хотел бы упомянуть Google Chrome Frame.