Показать сообщение отдельно
  #30 (permalink)  
Старый 29.12.2011, 15:07
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

ок, зависание убрал... удалил пару ненужных функций, вместо них написал новую. Вывожу эскепшн.. проседания у меня таковы:
если смотреть в ИЕ8 то разница между сизл и qsa таковы:
p + p + .example > p
сизл - 20.19 ms | 40 found
qsa - 27.31 ms | 40 found

div p
сизл - 20.88 ms | 140 found
qsa - 55.88 ms | 140 found

Это все в чем проигрывает qsa сизлу, во всех остальных селекторах сизл либо проигрывает либо на ровне, в большинстве случаях сизл проигрывает. Особенно на сложных селекторах.

Сообщение от float
на 1-м меньше всего кстати. что странно...
Немного теории, как они работают. сизл работает в обратную сторону, тоесть он сначала ищет то что указано в конце селектора, а потом ищет родителей совпавших с селектором ранее. Тоесть такой селектор:
p + p + .example > p
он перебирает таким образом: находит все теги P который указан в конце селектора. Потом ищет родителей с классом .example ну а потом смотрит что бы у родственника был брательник с тегом P и у того тоже брательник с тегом P. У меня же селектор идет от начала селектора, ищет все P, находит у них братьев и так далее. Вот именно из-за этого и есть разница, выигрывает тот кто быстрее наткнется на неудачу... поэту это сложный селектор и он всегда у всех может быть иной результат, все зависит от количества элементов в документе, и количества совпадений.. потому что прокручивать приходиться каждого рекурсивно в поисках дополнительных правил.

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

Никто не заставляет пользоваться версией с прототипами. Именно поэтому и сделаны две ветки.
Ответить с цитированием