"Нормальность" скорости выборки элементов.
У меня скрипт, который ищет элементы на странице.
Так вот чтобы найти элементы приходится искать все элементы getElementsByTag("*") Потом в цикле сравниваю с заданными в поиске требованиями. Короче чтобы найти элемент затрачивается 20мс . Я новичок и у меня где-то внутри ёкает, что это ужос как долго. Долго ли это на самом деле или в большинстве случаев не играет решающей роли? Или таки скорость стоит на первом месте? querySelectorAll работает быстрее, но в ie<8 не работает. |
viktorina,
1. Сколько элементов на странице и сколько из них выбирается ? 2. Каков смысл данной затеи ? 3. По какому селектору ищется ? |
Элементов бывает до тысячи. Из них выбирается до 30.
Смысл в написании своего маленького фреймворка(). http://jru-framework.ru/ - этот. У меня была мечта создать отечественный фреймворк:), но знаний маловато. Сейчас решил всё же вернуться к романтике, но уже более серьёзно. Например слайды эти на нём написаны. Ищется по любому селектору, хоть по присутствию слова или куска html в элементе. Проблема именно в первом getelementByTag(*) и в первом перелистывании всех элементов. После первого отсева всё быстро. |
Цитата:
А так - для слайдеров мало нерешенных задач, простейший - подгрузка готового фреймворка по клику на элемент слайдера. |
Но мой фреймворк делает всё быстро и просто, подгружает, перегружает, меняет стили и т.д.
У меня animate лучше чем jquery. проблема в скорости выборки. чтобы найти элемент 20мс надо, это же много? |
Цитата:
|
С анимацией всё в порядке. У меня сначала идёт выборка, до 20мс, потом анимация работает уже с выбранными элементами, во время анимации выборок нет.
При загрузке страницы все элементы, как правило уже собраны в переменных и ждут дискотеку:). Ну максимум при наведении мышки может понадобиться выборка, но пользователь эту задержку не заметит. Да и вообще не заметно это время, просто сам подход мой не смущает? Перелистывать все элементы и искать сходства. Не заплюют гуру за такой подход? "Аж 20мс! Да гори ты в аду!" :) |
viktorina,
90 % из написанного делает нативный http://javascript.ru/blog/subzey/que...orAll-praktike и т.д Цитата:
и т.д и т.п.. |
Цитата:
Потом суть не в том шо апплюют, - эт не главное - суть в том чтоб на мысли навели! |
Цитата:
ЗЫ. "Сейчас решил всё же вернуться к романтике" - пишешь как мальчик viktorina - а по нику девочка :) |
Цитата:
Цитата:
|
Цитата:
Цитата:
да и анимацией пора на сss3 переходить. не за горами тот день когда все остальные подходы, для подобных задач, морально устареют |
Цитата:
Код в ссылке. да и вопрос не по коду, а по возможности сделать из querySelectorAll - кроссбраузерное что-нибудь. И про время я спрашивал. А по коду там всё просто, в цикле проверяются атрибуты и параметры. |
Цитата:
|
Цитата:
Цитата:
моё мнение -только в целях саморазвития , а так обречён с ходу |
Цитата:
|
Цитата:
Сейчас вопрос в выборке, а слушатели , их удаление, анимации потом. Я застрял на этом qsA |
viktorina,
Цитата:
Второе: Если слайдер свой - можно контент разделить boundary и затем split(om) поделить и вставить его скриптом в нумерованный ID массив контент-блоков - поиск будет уже по известным id |
Цитата:
|
Цитата:
|
Цитата:
нужна функция типа function fixQuerySellectorAll(query,context){ return context.querySelectAll(query) || (...Что-то тут надо...) } |
viktorina,
Лучше сразу смотреть исходники Sizzle.js (это библиотека селекторов, которая используется в jquery). P.S. Можете сравнить производительность этой библиотеки с вашей. |
Тяжело вникнуть в суть происходящего внутри библиотек:(.
Обычно тяжело разобраться в подобных кодах? Или просто у меня опыта мало? |
viktorina,
Ну нужно дойти в учебнике до прототипов http://learn.javascript.ru/ С тренировкой ежели от нуля - полгода |
Цитата:
|
Перешёл по ссылке и читаю.
|
Часовой пояс GMT +3, время: 11:26. |