Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > что быстрее: поиск в массиве, или селектор jQuery


Автор: Leshak 14.3.2013, 09:04
Уважаемые знатоки JavaScript  и  jQuery!

Помогите разобраться с вопросом: что быстрее - поиск перебором массива, или селектор jQuery ?

Исходные условия:  Имеется большой объем (несколько тысяч) однотипных данных
номер (уникальный),  адрес (словесный),  ближайшие станции метро, площадь, цвет и т.д.

изучаю 2 способа реализации поиска:
1 - все описания находятся в массиве, поиск осуществляется перебором и после окончания ввода пользователем - оформляются в блоки и показываются;
2 - все описания указаны в соответствующий атрибутах блоков (изначально -  невидимых)
при задании граничных условий  производим следующее действо
Код

k =  $(".obj_str[adr*='"+adr[i]+"']").length;        // определяем количество совпадений
// ------------  или ---------------
$(".obj_str[adr*='"+adr[i]+"']").addClass('obj_Show');     // ставим метку "показывать" 


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

Автор: ksnk 14.3.2013, 09:16
Единственное, но важнейшее преимущество селекторов jQuery - это компактность и интеграция в сам jQuery. Достаточно поинтересоваться исходниками jQuery, чтобы понять, что любой его вызов - тяжелая и сложная операция.

С другой стороны, 
Цитата

В существующем варианте все очень быстро шевелится по второму способу,

внушает оптимизм. Зачем менять что-то, если уже и так неплохо работает?

Автор: Leshak 14.3.2013, 09:37
Цитата(ksnk @  14.3.2013,  09:16 Найти цитируемый пост)
Зачем менять что-то, если уже и так неплохо работает? 


Менять придется - существующий вариант имеет неприятные ограничения и требует много памяти. 
Делать заплатки и приблуды - еще больше утежелять конструкцию...


Цитата(ksnk @  14.3.2013,  09:16 Найти цитируемый пост)
Достаточно поинтересоваться исходниками jQuery

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


Цитата(ksnk @  14.3.2013,  09:16 Найти цитируемый пост)
jQuery ...-  любой его вызов - тяжелая и сложная операция.

Но сделаная более качественно, чем выйдет у меня...


Автор: Leshak 18.3.2013, 11:19
Переделал на поиск в массиве ...
  Такое ощущение, что медленей не стало!

Автор: ksnk 18.3.2013, 11:32
Leshak, а польза-то есть?  smile 

Автор: Leshak 19.3.2013, 14:30
ksnk - Спасибо!

Цитата(ksnk @  18.3.2013,  11:32 Найти цитируемый пост)
Leshak, а польза-то есть?

Пользы Много!  и я ее постепенно осваиваю smile

Особенно приятным оказалось то, что есть чистые данные! ими проще оперировать! память свободнее!

Автор: CruorVult 19.3.2013, 14:44
Цитата(Leshak @  14.3.2013,  09:04 Найти цитируемый пост)
Помогите разобраться с вопросом: что быстрее - поиск перебором массива, или селектор jQuery ?


Вперед http://jspeed.yanzigitov.ru/

А вообще мне стало интересно, чем была мотивирована потребность тянуть несколько тысяч данных сразу?

Автор: Leshak 22.3.2013, 16:56
Цитата(CruorVult @  19.3.2013,  14:44 Найти цитируемый пост)
Вперед http://jspeed.yanzigitov.ru/

А вообще мне стало интересно, чем была мотивирована потребность тянуть несколько тысяч данных сразу? 


За ссылку - Большое Спасибо! 
Буду осваивать!

А вот про потребность - тут сложнее...

Скажем так - а почему бы НЕТ?

Где то сказано, что  2 (и более ) Мб в файлах .css и картинках - это можно
 2Мб данных - это плохо??

я решил попробовать на внутренней(административной задаче) - все работает 
Небольшая заминка (30 - 90 сек) на загрузку, зато потом все работает достаточно быстро, 
а еще есть под рукой куча разных данных для поиска, сортировки и других манипуляций.

Сначала эти данные запрашивал AJAXом,
потом загнал в один файл сразу полную выборку из БД, залил в файл в формате JSON и подгружаю  во первых строчках <META ...>

Может это и ПЛОХО - но я пока не знаю почему...

Может кто-то расскажет?

Автор: ksnk 22.3.2013, 17:30
Цитата(Leshak @  22.3.2013,  16:56 Найти цитируемый пост)
Небольшая заминка (30 - 90 сек) на загрузку

На сайте, который нацелен на обычных, праздношатающихся интернет-пользователей такие задержки самоубийственны.
Достаточно представить собственную реакцию на ссылку в поиске гугла, которая открывается больше 30 секунд. Особенно когда рядом еще несколько сотен таких же.
 Нужно обязательно предупреждать людей, что полторы минуты придется подождать и 2 метра скачать. Не всякий юзер согласится ;)
Картинки большие хотя бы не тормозят отображение контента сайта, а вот данные, вероятно, блокируют...

Для админки и специальных людей или для интранета- почему бы и нет. Вот Ext.js с плагинами сам по себе весит 600 кил и никто не жужжит.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)