Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   "Нормальность" скорости выборки элементов. (https://javascript.ru/forum/misc/34424-normalnost-skorosti-vyborki-ehlementov.html)

viktorina 04.01.2013 18:37

"Нормальность" скорости выборки элементов.
 
У меня скрипт, который ищет элементы на странице.
Так вот чтобы найти элементы приходится искать все элементы
getElementsByTag("*")
Потом в цикле сравниваю с заданными в поиске требованиями.
Короче чтобы найти элемент затрачивается 20мс .
Я новичок и у меня где-то внутри ёкает, что это ужос как долго.
Долго ли это на самом деле или в большинстве случаев не играет решающей роли? Или таки скорость стоит на первом месте?
querySelectorAll работает быстрее, но в ie<8 не работает.

Deff 04.01.2013 19:26

viktorina,
1. Сколько элементов на странице и сколько из них выбирается ?
2. Каков смысл данной затеи ?
3. По какому селектору ищется ?

viktorina 04.01.2013 19:36

Элементов бывает до тысячи. Из них выбирается до 30.
Смысл в написании своего маленького фреймворка(). http://jru-framework.ru/ - этот. У меня была мечта создать отечественный фреймворк:), но знаний маловато. Сейчас решил всё же вернуться к романтике, но уже более серьёзно. Например слайды эти на нём написаны.
Ищется по любому селектору, хоть по присутствию слова или куска html в элементе.
Проблема именно в первом getelementByTag(*) и в первом перелистывании всех элементов. После первого отсева всё быстро.

Deff 04.01.2013 19:59

Цитата:

Сообщение от viktorina
Смысл в написании своего маленького фреймворка(). http://jru-framework.ru/ -

Ну в качестве имхо для тренировки и души - возможно,
А так - для слайдеров мало нерешенных задач,
простейший - подгрузка готового фреймворка по клику на элемент слайдера.

viktorina 04.01.2013 20:23

Но мой фреймворк делает всё быстро и просто, подгружает, перегружает, меняет стили и т.д.
У меня animate лучше чем jquery. проблема в скорости выборки. чтобы найти элемент 20мс надо, это же много?

Deff 04.01.2013 20:24

Цитата:

Сообщение от viktorina
20мс надо, это же много?

Если есть анимация - то нет, посколь минимальный цикл таймера порядка 13 мс

viktorina 04.01.2013 20:35

С анимацией всё в порядке. У меня сначала идёт выборка, до 20мс, потом анимация работает уже с выбранными элементами, во время анимации выборок нет.
При загрузке страницы все элементы, как правило уже собраны в переменных и ждут дискотеку:). Ну максимум при наведении мышки может понадобиться выборка, но пользователь эту задержку не заметит.
Да и вообще не заметно это время, просто сам подход мой не смущает? Перелистывать все элементы и искать сходства. Не заплюют гуру за такой подход? "Аж 20мс! Да гори ты в аду!" :)

dmitriymar 04.01.2013 20:43

viktorina,
90 % из написанного делает нативный http://javascript.ru/blog/subzey/que...orAll-praktike
и т.д
Цитата:

Все цепные функции запускаются двумя способами:event() и start()
бессмысленно, если слушатель нельзя отменить
и т.д и т.п..

Deff 04.01.2013 20:43

Цитата:

Сообщение от viktorina
Перелистывать все элементы и искать сходства. Не заплюют гуру за такой подход? "Аж 20мс!

Собственно кода нет, ап чем тогда можно полемику разводить...
Потом суть не в том шо апплюют, - эт не главное - суть в том чтоб на мысли навели!

DjDiablo 04.01.2013 20:56

Цитата:

Собственно кода нет, ап чем тогда можно полемику разводить..
+1

ЗЫ.
"Сейчас решил всё же вернуться к романтике" - пишешь как мальчик
viktorina - а по нику девочка :)


Часовой пояс GMT +3, время: 19:36.