Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Sample - мой движок поиска по CSS-селекторам (https://javascript.ru/forum/project/10646-sample-mojj-dvizhok-poiska-po-css-selektoram.html)

Maxman 13.07.2010 22:57

Sample - мой движок поиска по CSS-селекторам
 
Здравствуйте! Я написал свой JavaScript-движок поиска элементов по CSS-селекторам. Поддерживает все основные селекторы CSS 1-3, и дополнительные фильтры. Позволяет добавлять собственные фильтры. Полный размер - 10 Кб, сжатый - всего 4,1 Кб. Прямая ссылка: http://maxman.ucoz.com/Sample.zip Интересно ваше мнение! :)

subzey 13.07.2010 23:07

Не терпится попробовать его в действии.

exec 14.07.2010 06:21

Удивительно быстрый движок. Для примера: 10 вызовов sample(':hidden') занимают 2-2.1 с, 10 вызовов jQuery(':hidden') занимают 0.5-0.6 с, дальше не тестил.

B~Vladi 14.07.2010 10:10

Кучу циклов типа
for(n = 0; n < neigh.length; n++){}

можно переписать на
while(l){--l}

Maxman 15.07.2010 20:33

B~Vladi, вы правы, можно в некоторых местах, исправлю. Щас исправил ещё один баг, перезалил) надеюсь ещё кто-нить посморит. :)

Octane 15.07.2010 20:46

Скачивать и распаковывать архивы лень. Создайте проект на googlecode.com и залейте в SVN (ну или GitHub, кому что нравится). Так можно будет следить за изменениями в коде, добавлять комментарии, загружать по HTTP сразу из SVN, если файлам добавлен соответствующий mime-type.

tenshi 16.07.2010 12:22

ещё один.. скууучно =_=" придумайте что-нибудь новое уже наконец!

Maxman 16.07.2010 19:08

Цитата:

Сообщение от Octane (Сообщение 63959)
Скачивать и распаковывать архивы лень. Создайте проект на googlecode.com и залейте в SVN (ну или GitHub, кому что нравится). Так можно будет следить за изменениями в коде, добавлять комментарии, загружать по HTTP сразу из SVN, если файлам добавлен соответствующий mime-type.

Сделаю всё это, но позже. Ещё хотел сверстать про него домашнюю страничку, не успел просто. Пускай пока поваляется на uCoz'e. Могу так сделать: http://maxman.ucoz.com/sample.js для удобства.

Cr@ZyBoY 16.07.2010 21:22

Maxman,
хотел потестировать, но SlickSpeed отказался с ним работать - ReferenceError: Undefined variable: sample.

Maxman 20.07.2010 11:35

Cr@ZyBoY, попробуйте теперь.

Cr@ZyBoY 03.08.2010 22:56

Maxman,
да, скоростью Ваш движок не блещет...
http://carbonjs.com/demo/slickspeed/

Maxman 04.08.2010 19:35

Да... но, там 100мс из-за :contains, а так было бы 34.092, это быстрее чем все те библиотеки кроме Carbon.JS и Peppy :write:

Cr@ZyBoY 06.08.2010 19:53

Потестировал я тут Ваш движок по-внимательнее и заметил следующее: Sample не добирает элементы для некоторых селекторов в браузерах без поддержки Selectors API (Firefox 2, Opera 9.27, IE 6), как то:
Цитата:

"div p": элементов - 140, Sample - 3
"div p a": элементов - 12, Sample - 0
"ul .tocline2": элементов - 12, Sample - 0
"div #title": элементов - 1, Sample - 0
"ul.toc li.tocline2": элементов - 12, Sample - 0
"div[class=example]": элементов - 43, Sample - 51
"div[class~=example]": элементов - 43, Sample - 0
"p:nth-child(2n+1)": элементов - 166, Sample - 0
"ul > li *": элементов -140 , Sample - 0
Всё-таки надо проверять такие вещи как можно в большем количестве браузеров, перед тем как выставлять на обозрение.

Цитата:

там 100мс из-за :contains, а так было бы 34.092
Могу поспорить, Вы проверили это в последней версии какого-нибудь браузера и успокоились, а вот в том же Firefox 2 Ваш Sample набрал 2052.556 мс, тогда как, например, мой Carbon.JS набрал всего 208.562 мс. Обработки "div + p", "div ~ p" и "* > :nth-child(2n+1)" я вообще не дождался, так что делайте выводы.

Что ж, продолжайте работать, развивайтесь - флаг Вам в руки. И не забывайте тестировать скрипты в старых версиях браузеров.

tenshi 06.08.2010 21:25

фф2 мертв. не занимайтесь некрофилией ;-)

Cr@ZyBoY 06.08.2010 23:00

Да-да, IE 6 тоже официально мертв, однако ж сколько некрофилов вокруг. У скрипта в шапке заявлена поддержка этих браузеров, так что уж извольте.

Maxman 12.08.2010 00:02

Cr@ZyBoY, а вы для SlickSpeed сам файл заливали на сервер или использовали ссылку которую я дал? Просто удобнее было-бы по ссылке, чтобы редактируя файл можно было сразу сравнивать скорость

Gvozd 12.08.2010 00:39

Цитата:

Сообщение от tenshi
фф2 мертв. не занимайтесь некрофилией ;-)

http://infametr.ru/infa/2036331
имею основания сомневатся в вашем утверждении

Cr@ZyBoY 14.08.2010 13:29

Maxman,
естественно заливаю на сервер, SlickSpeed по-другому не умеет. Если хотите, могу выслать вам его исходники, и будете проверять движок сразу у себя.

javs 14.08.2010 22:25

Цитата:

Сообщение от Gvozd
имею основания сомневатся в вашем утверждении

Лучше все же использовать более доверенные источники

inGray 14.08.2010 22:32

Обратная совместимость - больная тема. Сделаешь чтобы работало даже в Netscape Navigator и такая что-то получится) Тут баланс нужен. Скажем, если во всех наиболее популярных браузерах работает - читай работает везде.

Cr@ZyBoY 14.08.2010 23:48

Ну вот ie6 сейчас все еще "популярный". Если сделать так, чтобы в нем работало правильно, то скорее всего заработает и в ff2. А если под популярными вы имеете в виду только современные, то смысла в движке селекторов вообще не будет, так как будет работать Selectors API.

javs 19.08.2010 04:29

inGray,
Я считаю еще круче, ну не во всех случаях конечно, но в данном конкретном по мне достаточно и FF :)


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