|
Carbon.JS JavaScript framework
Всем привет! Решил, что пора уже заявить о своём творении.
Итак, представляю Carbon.JS (http://carbonjs.com) - jQuery-подобный велосипед собственного сочинения. Особенности моей библиотеки: очень быстрое ядро, которое выбирает элементы по CSS-селекторам, модульность (на данный момент 6 модулей). Таблица сравнения скорости с jQuery 1.4: http://carbonjs.com/2010/02/carbon-j...-1-8/#more-140, тест SlickSpeed - http://carbonjs.com/demo/slickspeed/. В фреймворке присутствуют функции для работы с DOM, Ajax, функция анимации и пр. Раздел демонстрации пока не готов, хотя можете полазить в папке ./demo/. На сайте есть документация, репозиторий и форум. Очень интересно ваше мнение, может кто-нибудь даже захочет помочь в разработке. |
На селекторах свет клином сошелся похоже :D
|
Эмм, это как понять?
|
Неужели, вы, опытный JavaScript-программист, используете сложные CSS-селекторы в JavaScript, делая ваши скрипты, сильно зависимыми от вёрстки?
|
Лично я нет. Но никогда не знаешь, что где может понадобиться, поэтому почему бы не сделать ядро максимально функциональным в плане поддержки селекторов?
Ну и к тому же, это чисто спортивный интерес: типа, такое сделали в jQuery, Prototype и т.п., а чем я хуже? Пусть увидят, на что способен парень из страны, где по улицам ходят медведи в лаптях и все на ночь пьют водку с молоком. |
Цитата:
|
Ясно. Своих идей нет.
|
Свои идеи есть всегда, но почему бы не улучшить чужие? Пусть этих движков уже дофига, ну и что. Конкуренция - двигатель прогресса. ИМХО, чем больше выбор, тем лучше.
Да и к тому же у меня не просто один только движок селекторов, но и полноценная библиотека. |
Таксь. Ядро проанализировал. Говорю сразу кеш можете выкинуть. он не нужен, только испортит выборку.
Пример: сделали выборку, добавили элемент в дом и сделали еще раз такую выборку - получаем теже элементы, а новый не добавляется. Это раз. Два. Q('* SPAN I + SPAN DIV B + *') Заместь * представте что интересует не тег как фильтр, а сам фильтр, например атрибуты. И тут то ваш скрипт и полетел. jQ в два раза быстрее Вашего в этом случае. Этот метод я уже давно продумал выбирать все элементы в текущем контексте потом в каждом полученном выбирать новые + это все проверять(отсеивать), оч много лишних действий. А еще баг есть У Вас там есть такая фишка 315 var selectors = iargs.replace(/\s?(>|\+|~)\s?/g, "$1") Тут вы убираете пробелы между комбаноториками, а не подумали что может быть такой запрос (привожу как пример) Q('* SPAN I[name=Вася + Пупкин] + SPAN DIV B + *') В данном случае фильтр искорябится... П.С. тестил как Ваш, так и jQ без querySelectorAll и кешей. Задумка неплохая, и кстати понравилась фишка с getByCombinators. П.П.С Отмечу что у Вас нет такого бага "+" как в jQuery это радует и вообще техника выборки другая => селекторы работают как надо. в JQ в этом плане есть немного багов |
ядро - это грозно сказано х)))
если твой движок селекторов так крут - ну так и развивай jquery встроив движок в него |
Часовой пояс GMT +3, время: 01:09. |
|