Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   QSA CSS Selector Engine v1.0 - Выкладываю CSS-селектор по просьбе трудящихся (https://javascript.ru/forum/project/24330-qsa-css-selector-engine-v1-0-vykladyvayu-css-selektor-po-prosbe-trudyashhikhsya.html)

devote 26.12.2011 13:39

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, поиск элементов, движок селекторов

devote 27.12.2011 05:57

Была исправлена серьезная ошибка

float 27.12.2011 07:35

line: 134 - 2-ка не лишняя?

devote 27.12.2011 07:36

Цитата:

Сообщение от float
line: 134 - 2-ка не лишняя?

нет не лишняя, это для ИЕ который отдает ссылку в полном формате в зависимости от текущего домена, а не ту что указана в href, поэтому ему явно нужно указывать что нужна та что есть в теге

float 27.12.2011 07:52

нда... надо бы мне почаще на msdn заглядывать...:)

devote 27.12.2011 07:54

Цитата:

Сообщение от float (Сообщение 146366)
нда... надо бы мне почаще на msdn заглядывать...:)

Ну мы туда смотрим как правило по необходимости, а сидеть изучать его нет времени и надобности

devote 27.12.2011 13:50

Добавил дополнительную реализацию

devote 27.12.2011 15:26

Никак не могу оставить ее в покое =)) На сегодня точно все, больше ничего исправлять не буду.

FINoM 27.12.2011 20:10

Круто. Только мало что понял :D

trikadin 27.12.2011 20:15

Цитата:

Сообщение от FINoM
Круто. Только мало что понял

Вот-вот...


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