Meteora

    Уже имеется множество javascript фреймворков, инструментов, множество обсуждалось и тут, однако один очень интересный проект мы упустили из виду. Итак, встречайте



    Сам по себе это не самостоятельный фрэймворк, это набор виджетов (как их называют разработчики проекта). Сам пакет основан на MooTools. Однако имеет уже множество встроенных функций, таких как автокомплит, календари и т.п.

    Сам дистрибутив занимает порядка мегабайта и состоит из множества папок. Упакованный вариант пакета (в архиве папка compact-source) занимает 380Кб. В нем и листы стилей, и пиктограммки требуемые для билиотек, и сами библиотеки. Интересно то, что для подключения этого пакета к вашему сайту необходимо подключить только один файл скрипта — минимальное ядро.
    <скрипт type=«text/javascript» src="/js/meteora/meteora.js" />

    А если надо подгрузить какой-то компонент (называемый Control), то уже можно использовать javascript. например:
    Meteora.uses('Control.Controlname');

    Таким образом мы загружаем только те компоненты, что на нужны и вполне естественным путем.

    После того, как мы подгрузили Control мы можем создавать объект
    new ControlName(
    'objectId',
    {
    option1: 'value1',
    option2: 'value2'
    }
    );
    У разных Control эти опции разные, но все они хорошо документированы

    Для решения проблем, связанных с тем что не успевает загрузится DOM имеется стандартное решение
    Meteora.onStart(
    function() {
    new ControlName(
    domNode,
    {
    option1: 'value1',
    option2: 'value2'
    }
    );
    }
    );

    Продолжать не стану, так как на оффсайте и так все понятно. Просто опишу мой случай, как я собственно и нашел этот набор.

    Для интерфейса мне понадобилось поле типа SpinButton (Это где рядом с текстовым полем есть двунаправленная стрелка для изменения цифр или еще чего-то в поле) где нужно было выбирать определенную сумму с заданными пределами (от 3 до «восьмерки-на-боку») и шагом 0.10

    На мое удивление это оказалось достаточно просто.
    Я подключил этот пакет, как указано выше, подгрузил нужную мне библиотеку
    Meteora.uses('Control.Spinbutton');
    и ввел параметры спина.
    Meteora.onStart(
    function () {
    new Spinbutton('amount', {
    'defaultValue': 3.0,
    'minValue': 3,
    'step': 0.1
    });
    }

    теперь input c id=«amount» приобрел нужный функционал. мелочи конечно, но для подобных случаев думаю этот пакет будет всем очень полезен

    А вот и адрес, по которому собственно и можно взять этот пакет и документацию по нему — meteora.astrata.com.mx
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 44

      +1
      Спасибо! Офигенная штука!
      Мог бы поставить плюсик, поставил бы =)

      +1
        0
        Штука хороша, но еще много мелочей не сделано.
        В автокомплите кнопки клавиатуры не работают, в дереве неактивены стрелочки графические, только текст, элементы, которые отрисовываются как окна, нельзя двигать, можно только Popup, и т.д.
        Ну и аналогов есть несколько уже зрелых ;)
          0
          а не посоветуете ли «зрелых» наборов виджетов?
            +1
            подобную цельную подборку в целом врядли, скорее набор от разных производителей. Собно, далее мой хот-лист при поиске нужного компонента :)
            SweetDev RIA
            OpenRico
            MochiKit
            qooxdoo
            script.aculo.us
            Dojo Toolkit
            Rialto
            Spry
              0
              а как это вы так ExtJS упустили?
                0
                почему некто не указывает YahooUI? Он на голову выше всех перечисленных(ну уж 100% не хуже), да еще и под BSD. Не понимаю...
                  0
                  Расскажите подробнее личный опыт с YUI.
                  В частности, есть ли там возможность сделать поле input c возможностью выбора из списка, как в select? Я нашел там только компонент Autocomplite, у которого нет "стрелочки" для раскрытия списка...
                    0
                    Я не совсем понял задачу, но если вам надо сделать input типа text, с выпадающим как у select списком, то тогда надо подшманить немного с menu. Готового примера не нашел, но там про меню почитайте — про то как контролить события и показывать/прятать меню. Другая задача: вам надо сделать обычный select, тогда, готовый пример.
                      0
                      Спасибо за наводку, посмотрел menu и про готовый пример - не то.
                      Вот что я хочу сделать на YUI (пример из extjs): http://extjs.com/deploy/dev/examples/for…
                        0
                        Ну тогда я абсолютно не понимаю чем это отличаться от AutoComplete ну разве что стрелочки вниз там нет... а так все тоже.
                        А чтобы отображались все записи, и появлялась полоса прокрутки надо добавить в style:
                        #statescontainer .yui-ac-content {
                        max-height:21em;overflow:auto;overflow-x:hidden;/* scrolling */
                        _height:11em; /* ie6 */
                        }

                        в script:
                        this.oAutoComp.maxResultsDisplayed = YAHOO.example.statesArray.length;
                  0
                  вы меня простите, постил список больше и с линками, но по некоторым причинам (да-да, она самая, на букву "ка" :)) парсер вырезал линки и обрезал пост до такого списка.
                  ExtJS замечательная штука, не стал добавлять комент, решил, что и так все знают.
                  С YUI сталкивался мало, и почему-то при первом взгляде не шибко понравился, потому не стал рекомендовать то, что не знаю.
                    0
                    Мне вот интересно, а те кто юзает ExtJS знает, что она платная для коммерческого использования? Насчет остальных фреймворков не знаю... Вы вообще смотрите на лицензии?
                      0
                      Да, знаем )) И смотрим)) И приобретаем лицензии, если надо использовать на коммерческой основе. В том числе и лицензию ExtJS
                        0
                        Это радует. Вот токо я не совсем понимаю, сейчас вы использует ExtJS токо в проектах совместимых с Open Source? Ведь иначе вы должны были уже купить ExtJS("приобретаем если надо"). Да и стоит это лицензия, на мой взгляд, крайне не дешево...
                          +1
                          Нет, не с Open Source =)
                          Уже купили. Да, не дёшево, но того стоит.
                            0
                            Ну это каждый сам решает... Вы решили так, у вас есть средства, а кто-то по другому. Но почему-то мне кажеться что не все обращают внимание на лицензию, прежде чем начать использование продукта(в том числе и коммерческое).
                              0
                              Это только кажется
                        0
                        И что дальше?
                0
                Текст эдитор неплохой там, я сначала думал, что это вообще картинка, а потом кликнув понял, что это еще и работает.
                  0
                  380кб - Очень много, даже черезчур.
                    0
                    Кстати, в эти 380кб не дописали строчки чтобы затемнение было не только на видимую область, но и на ту, которая доступна только при прокрутке =\
                      0
                      по окончании работы можно лишние папки с библиотеками и медиа удалить просто напросто.
                        0
                        380кб + ~70кб (MooTools)
                          0
                          мутулз уже включен в пакет
                            0
                            Ну вот...
                        0
                        да там почти 100кб занимают рисунки editor'а и mootools (старьё 1.11) включен в эти 380кб. А вообще это отстой :-) мое дерево намного лучше, чем их.
                        0
                        Даже видео обучающее на главной странице))
                        А кто нить его использовал серьёзно?
                          0
                          На мой взляд ничего особенного, по сравнению с тем же JQuery.
                            +1
                            или я чего-то не понимаю или вы jQuery не с тем сравниваете. Метеора - набор вижетов, jQuery, MooTols - js фреймворки.
                              0
                              Ну к jQuery есть около 60 виджетов, и есть проект jQuery UI.
                              А вот Meteora лично меня чё-то не впечатлило.
                                0
                                Вы правы, Метеора - набор виджетов. jQuery - инструмент для создания любых виджетов, помимо всего прочего.
                              0
                              Посмотрел.
                              Миленько, но местами сыренько… Понравился тейблСорт (и то, а как же отображение стрелочек и выделение колонки, по которой сортируем? в доках ни слова — new Tablesort('table_id'); и всё), Селекшен оказался чуток бажным, Picbox не нужен за имением Slimbox, Popup полезен, Form Control не оправдал ожиданий, Пузырятор и календарь некрасивые (ну, это поправимо).

                              Ради скажем попапа и тейблсорта я целую махину в сайт включать бы не стал, но на заметку либу возьму.
                                0
                                Пока что этому "набору виджетов" нечего противопоставить ext js'у, даже размер на данном этапе девелопмента уже достиг 380Кб, что будет дальше?
                                  0
                                  Название и эмблема навевают какие-то нехорошие ассоциации...
                                    0
                                    Просто разработчики плохие дизайнеры, а дизайн заказать не осилили)
                                    +3
                                    Спасибо автору за ссылку. Мега-полезно.

                                    Но, господа, вы тут разглагольствуете о 320 килобайтах, а прочитали ли вы, что там происходит на самом деле? Ядро метеоры весит 4КиБ, а подгрузка остального кода происходит в реальном времени, если вам понадобился тот или иной виджет.

                                    Мне показалось, топикстартер довольно ясно это описал. Если нет, прокомментирую — ядро содержит в себе описание зависимостей модулей и при требовании загрузить что-то, делает простую штуку — document.write('<script type="text/javascript" src="ненене.js"></script>');

                                    Ну а противостояние Meteora vs. jQuery это вообще феерия :-)
                                      0
                                      кстати, не известно что еще будет лучше: использовать document.write или eval(содержимое_с_ajax_запроса_нужного_файла).
                                      Может есть еще какой-то способ? Так, на вскидку не вспомню
                                        0
                                        Ну, это совсем другой вопрос. Просто стало обидно за парней, которые хорошо спроектировали код, чтобы экономить трафик пользователей, а главным поводом недоверия становится якобы отсутствие этой экономии.

                                        По поводу eval и write могу от себя лично добавить вот что:
                                        1. eval штука небезопасная, все это знают. Но уже придуманы методы безопасного eval, поэтому почему бы его не использовать?
                                        2. Если мы сидим на MooTools, то давайте рассуждать уже не про eval, а про Assets.javascript()
                                        3. Если посмотреть исходник Assets.javascript(), то (учитывая, что ребята из MooTools — не последние спецы в своем деле) понимаем, что write это не грабли :-) Там это, правда, делается так: script.inject(doc.head).

                                        Так что, думаю, все в порядке :-)
                                        0
                                        какие 4кб весит ядро? Это не ядро а код для подгрузки других компонент. Ядро лежит в lib/Core/Meteora.js и весит 20кб
                                          0
                                          Да, я не то назвал ядром, но описал функциональность правильно.
                                          Да, я был невнимателен, а цена вопроса выросла до 24 КиБ.
                                          Но я все еще не напуган :-)
                                        0
                                        Надо попробовать. Мне лично понравилось то, что ядро очень маленькое, а все остальное суть расширения...
                                        Но с другой стороны, сжатое ядро jQuery весит столько же, а вот возможностей в нем, скорее всего больше.

                                        Скорее, всего выбор фреймворка - вопрос личных пристрастий. А споры типа "хуже-лучше" - вечная битва, вроде "Что круче Винда или Линух"
                                          0
                                          крутая вещь!
                                            0
                                            потыкал по демкам — некоторые не работают в IE7 с ошибкой JS:

                                            "Неожиданный вызов метода или обращение к свойству"

                                            а вообше у mootools есть проблемы с работоспособностью базовых функций в некоторых браузерах. в отличие от jquery, скажем.
                                              0
                                              не понравилось, сделано на старом mootools

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                              Самое читаемое