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

QSA CSS Selector Engine v1.0.1 - Выкладываю CSS-селектор по просьбе трудящихся
Основные отличия от Sizzle - в два раза меньше размер обфусцированного файла, исходный так же присутствует. Все по максимуму прокомментировано на русском языке. Скорость работы внутреннего поиска не используя встроенный селектор в браузер, в среднем в полтора раза выше чем Sizzle. Почему сравниваю только Sizzle, потому что единственный селектор который сортирует элементы на выходе.

другие селекторы, такие как:
Mootools, Prototype, Dojo, DOMAssistant, jQuery( не Sizzle ), YASS и д.р. Не правильно сортируют элементы. Можете сами проверить.

тесты:
http://spb-piksel.ru/tests/speed/
http://spb-piksel.ru/tests/speed2/

Использование:

qsa.querySelectorAll( string selector [, node/nodeList context(s), nodeList extra(s) ] );

qsa.querySelectorAll( "div + p > a" );
qsa.querySelectorAll( "div + p > a", document.getElemetById("myNode") );
qsa.querySelectorAll( "div + p > a", document.getElemetById("myNode"), [ elem1, elem2, elem3 ] );


Найдете ошибки, иль чего не то... сообщайте. СПС

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

1.2.1 - Убрал зависания при неправильных селекторах.

1.2.2 - Не искал элементы с селектором: style[type="text\\/css"] Исправлено.

1.2.3 - В Safari при сортировке элементов происходил сбой Исправлено.

1.3 - Добавлен метод matchesSelector.

GitHub: https://github.com/devote/QSA
ссылка для скачивания: http://code.spb-piksel.ru/?qsa.latest.zip

TAGS: CSS3 Selector, селектор, qsa, поиск элементов, движок селекторов
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 06.05.2012 в 04:12.
Ответить с цитированием