jQuery выбрать по classу VS выбрать по атрибуту
Я хочу просто попросить мнение о производительности: быстрее ли выбирать элементы по имени classа или по имени атрибута с помощью jquery? Пример: у меня есть 100 элементов DIVs в этой форме:
...
Что быстрее:
$('div.normal_box').each(function(){...});
В.С.
- Эффективность: массивы против указателей
- Заменить значения в списке с помощью Python
- Что быстрее? ByVal или ByRef?
- Является ли структура агрегации Mongodb быстрее, чем карта / сокращение?
- Является ли использование double быстрее, чем float?
$('div[normal_box=1]').each(function(){...});
Я провел несколько экспериментов на 30 div, но я не вижу никакой разницы с (new Date) .getTime (); Может быть, выбор по classу более эффективен при использовании ЦП?
- Странная ветвящаяся производительность
- C # самый быстрый способ смены массива
- Анатомия «утечки памяти»
- Оптимизировать запрос структуры сущности
- Что же случилось с использованием GC.Collect ()?
- Производительность Android xml vs java
- Почему изменение 0.1f to 0 замедляет производительность на 10x?
- В параллельном коде OpenMP будет ли какая-либо выгода для параллельной работы memset?
это отличный пост для того, что вы ищете.
ИСПЫТАНИЯ ПО ЭКСПЛУАТАЦИИ ПО ЭКСПЛУАТАЦИИ JACKERY SELECTOR
Я также нашел отличную статью, которая может помочь вам по этой теме:
- некоторые тесты производительности селекторов jquery
дайте мне знать, действительно ли этот ответ вам помог, спасибо.
update: мне удалось сделать образец, соответствующий вашему опубликованному делу, вот результаты для всего набора из 203 div:
1-, используя имя тега, имеющее имя classа certine $("div.normal_box")
==> 884 мс
2- используя значение атрибута $("div[normal_box=1]")
==> 4553 мс
Обновление 2: я попробовал еще больше, чем ваш вопрос, и сделал это, чтобы проверить несколько селекторов, вот новая ссылка для этого обновленного теста: http://jsfiddle.net/8Knxk/4/
3- с помощью имени тега $("div")
==> 666 мс
4-, используя только имя classа $(".normal_box")
==> 762 мс
Я думаю, теперь для вас это более понятно 🙂
Вот результаты теста, который я только что запустил для себя. Этот div был на DOM с 1562 элементами.
тесты
function test(iterations) { console.time('query-by-data'); for(var i=iterations;i;i--) { $('[data-banana]'); } console.timeEnd('query-by-data'); console.time('query-by-class'); for(var i=iterations;i;i--) { $('.banana'); } console.timeEnd('query-by-class'); }
Результаты
iterations: 1000 query-by-data: 120.000ms query-by-class: 10.000ms iterations: 10000 query-by-data: 1030.000ms query-by-class: 56.000ms iterations: 50000 query-by-data: 5151.000ms query-by-class: 235.000ms