Производительность jQuery,.css или addClass
У меня есть большой код jQuery, и я думаю о скорости выполнения моих функций. Когда элемент щелкнут (mousedown), мне нужно назначить изображение в качестве фона. Я могу сделать это двумя способами:
$('#element li.class').css({"background":"someimageURL"});
или
$('#element li.class').addClass("someclass");
где "someclass" имеет фактическое фоновое изображение CSS.
Функция Witch работает лучше в этом случае.
Есть ли способ проверить скорость различных функций?
Спасибо
Ответы
Ответ 1
Я почти уверен, что .addClass()
будет быстрее из двух. Это предполагает, по существу, привязывание к другому классу элемента, тогда как альтернатива потребует повторения стилей элементов и установки множества явных правил.
Установка пары правил css через $.css()
, скорее всего, не о чем беспокоится, но если вы обнаружите, что устанавливаете много, часто, время для создания класса и применения/удаления по мере необходимости.
Я извлек логику обоих методов в одно место для просмотра, если хотите.
http://pastie.org/842738
Ответ 2
Добавить класс абсолютно быстрее, см. этот тест производительности $.addClass()
vs $.css()
vs $.removeClass().addClass()
vs plain js - http://jsperf.com/jquery-css-vs-addclass-speed/2