Форум → Программирование → JavaScript → Выбираю библиотеки, посоветуйте
Выбираю библиотеки, посоветуйте
Страницы: ← Следующая страница →
-
Вот значит нужны решения для таких задач (фронтенд, не админка):
1. Система классов (наследование и хуе-мое) + обязательно динамическая подгрузка зависимостей. Второе даже важнее. Тут пока что безусловный фаворит ExtJS4. http://www.sencha.com/blog/countdown-to-ext-js-4-dynamic-loading-and-new-class-system . Правда он толстоват, и его бутстрап глюковат. Но мне ж только система классов нужна, по идее можно сделать маленьким
2. Роутер. Причем такой, который сможет разруливать как анкоры так и через history.api работать. Да еще что б можно было условия ставить - этот роут только через history.api, а другой можно и анкорами. Фаворитов тут пока нет
3. Шаблонизатор. С поддержкой эскейпинга. Тут кандидатов несколько:
a) jquery.tpl - до недавнего времени был стандартом для жуйквери, но сейчас он плавно переезжает в жуйквери-уи
b) ejs - менее интересный проект, но симфоебам первой версии думаю понравится (link_to()) http://embeddedjs.com/
c) twig.js - свежачек, который сразу стал лидером этого хитпарада. Дело в том, что этот шаблонизатор компилирует на сервере шаблоны в нативные жс-классы. Те же самые мать их шаблоны можно использовать на сервере и на клиенте. Это просто гениально
4. Валидация данных и форм. Мне необходима возможность описывать часть правил валидации в виже атрибутов тегов (не в классах), при этом иметь возможность руками динамически добавлять правила и расширять своими валидаторами. Пока очень понравилось https://github.com/vivin/regula/wiki/ в стиле явы и сф2
5. Пересекается с прошлым и с самым первым - что-то для моделей и коллекций. Ну тут Backbone.js наверно. Хотя в Ext'е тоже есть модели
6. Легкие, кастомизируемые и не сильно хуево сверстанные виджеты, типа табов, дейтпикера, loading mask, автокомплита. Тут пока лидер jQuery-ui.
7. Хелперы для стандартных типов, при этом не расширяющие эти самые прототипы. Что-то типа Ext.Date, underscore.js
8. Вебсокеты с fallback-транспортом через флеш. Пока socket.io лидер. Тут еще нужна серверная часть.
9. mysql-клиент. Еше одна серверная потребность. Хочу с поддержкой named prepeared statements. Пока выбрал mysql https://github.com/felixge/node-mysql , но там только анонимные плейсхолдеры. Хотя в принципе хули там сделать поддержку именованных и заслать патч?
10. Что-то для переводов. Несложное, но с поддержкой plural-forms и хотя б какой-то минимальной подстановкой плейсхолдеров.
Вроде ниче не забыл.
Что подскажете, братюни? Что вы используете? -
5 ноября 2011 г. 1:55, спустя 8 минут 59 секунд
ой столько нового! столько нвоого!!!! спасибо тебе брютан! :)Сапожник без сапог -
5 ноября 2011 г. 2:12, спустя 16 минут 34 секунды
+1)))
ой столько нового! столько нвоого!!!! спасибо тебе брютан! :) -
-
5 ноября 2011 г. 2:55, спустя 23 минуты 36 секунд
компилирует на сервере шаблоны в нативные жс-классы.
И генерирует лишний трафик, и пользователь не "грузится" до конца - вместо этого лишний груз на сервер. Я выхожу из этой ситуации так -
в конец скелета, до </body>, у меня вложен пустой блок с именем script, и если нужно, в шаблоне, я вставляю в него переменные, загоняя их в специальный объект globalDynamicDataHelper:{% block script %}{% if db %}<script type="text/javascript">
globalDynamicDataHelper.started = true;
globalDynamicDataHelper.requested_id = {{ requested_id }};
globalDynamicDataHelper.uid = {{ isauth.uid }};
globalDynamicDataHelper.me = (globalDynamicDataHelper.uid == globalDynamicDataHelper.requested_id);
</script>{% endif %}{% endblock %}
И затем уже работаю с этим объектом в клиентской части:
инициализацияglobalDynamicDataHelper = {};
использованиеif (globalDynamicDataHelper.started) {
//alert(globalDynamicDataHelper.requested_id);
} -
5 ноября 2011 г. 3:00, спустя 5 минут 36 секунд
И да общение с сервером баз данных на жс + эскейпинг на жс - это не дырки случаем? -
5 ноября 2011 г. 3:02, спустя 1 минуту 35 секунд
Абырвалг, чо такое грандиозное то собрался вообще делать? может зря такую аммуницию собирешь? :)Сапожник без сапог -
5 ноября 2011 г. 3:10, спустя 7 минут 36 секунд
И да общение с сервером баз данных на жс + эскейпинг на жс - это не дырки случаем?
ну не знаю, на nodejs как-то программят же люди
phpdude, тут несколько задач в одном проекте. Чятик с поддержкой непрочитанных и сохранением истории. Всякие динамические формы в попапах и табах. Открытие этих попапов и конкретных табов по анкору в урле. В целом ничего военного, просто хочется привести в порядок то, что уже написано + дальше делать по-науке. Ну и все это должно быть мультиязычным.И генерирует лишний трафик, и пользователь не "грузится" до конца - вместо этого лишний груз на сервер.
шаблоны компилятся один раз, передаются на сервер, занимающийся статикой. Там гзиппятся, отдаются с кеширующими заголовками. Не вижу тут никакой нагрузки. -
5 ноября 2011 г. 3:18, спустя 8 минут 20 секунд
шаблоны компилятся один раз, передаются на сервер, занимающийся статикой. Там гзиппятся, отдаются с кеширующими заголовками. Не вижу тут никакой нагрузки.
ничего себе :-))
ну видимо шаблоны сильно крутые раз их приходится кешировать … по мне так похуй на эту мелочь, ведь это происходит на клиенте. и занимает это ну может 1 милисекунду … дольше и сложнее и медленее, особенно на плохом интернете имхо будет качать с сервера эти данные …Спустя 8 сек.может я конечно не прав :)Спустя 104 сек.аа блеядь, так twigjs это для нодежс получается? :))Спустя 51 сек.судя по https://github.com/fadrizul/twigjs/blob/master/tests/parser.test.coffee таки да. дя серверсайд жс-ноджс и прочее шаблонизатор.Сапожник без сапог -
5 ноября 2011 г. 6:02, спустя 2 часа 44 минуты 37 секунд
это не тот твигжс) https://github.com/schmittjoh/twig.js вот тот -
5 ноября 2011 г. 7:17, спустя 1 час 14 минут 23 секунды
Абырвалг, смотрел Microsoft Ajax Library и вот эту штуку ? -
5 ноября 2011 г. 7:29, спустя 12 минут 4 секунды
Абырвалг, цмс пишешь?
Мне понятно зачем нужны пункты 3, 4, 6, 9, про остальное не понятно, что это и зачем, я их в работе не юзаю.
шаблонизатор у мну - смарти. так исторически сложилось, одно ядро на все приложения, поэтому несовместимых апдейтов не делаю, и шаблонизатор не меняю. Тем более что на смарти уже всяких расширенных функций понавешал.
валидатор форм есть, собственного написания. описалово хранится в хмл, используется моделью, генератором форм, контролом формы (это такой класс, который искаропки выводит список записей таблицы и позволяет их редактировать). валидация двойная - клиентская и серверная. ну там много всего нашпиговано, и вряд ли такое можно вытащить в отдельный компонент, слишком сильная связь с остальными частями.
я работе с формами посвятил отдельное время, и теперь могу хуярить по 30 новых моделей в день. просто задаю структуру данных и имя таблицы, миграция по созданию таблицы генерится автоматом, и всё, в админке можно полноценно работать с таблицей. при отрисовке формы выполняется валидация, и заданы некоторые типы данных (емэйл, дата-время, файлы).
для дейтпикеров использую какую-то хуету вроде жквери.дейтпикер
плейсхолдеры для mysql использую неименованные, хватает.Спустя 157 сек.вообще я так скажу. была бы готовая CMF с этими возможностями - я б велосипед не изобретал, взял бы готовое и юзал. ну типа как рельсыне всё полезно, что в swap полезло -
5 ноября 2011 г. 7:35, спустя 5 минут 38 секунд
Абырвалг, смотрел Microsoft Ajax Library и вот эту штуку ?
нокаут.жс смотрел, но это внатуре нокаут. Как-то неявно-магически все.цмс пишешь?
нее, я цмс-ок уже написался). Нафига чат в цмс?
у меня Symfony2, там более-менее охуетительный фреймворк форм, а здесь тема о их клиентской валидации. -
5 ноября 2011 г. 7:52, спустя 17 минут 1 секунду
вот эта штука понравилась дуду :-))
Абырвалг, смотрел Microsoft Ajax Library и вот эту штуку ?
чем то напомнило виндовс интерфейсы построение на уровне шаблонизацииСапожник без сапог -
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!