|
HTML_MetaForm - извлечение информации о структуре HTML-формы и ее обработка |
[+] [обсудить] |
| Библиотека HTML_MetaForm, а также сопутствующая библиотека HTML_MetaFormAction революционным образом упрощает работу с формами в PHP-программах, не изменяя при этом традиционную структуру Web-скриптов. Библиотека работает "прозрачно" и может быть подключена к любому имеющемуся скрипту. В результате скрипт получит полные сведения о структуре формы, которая была ему отправлена, снабженную мета-атрибутами, указанными при создании формы (например, именами валидаторов). На основе этой информации проводится дальнейшая работа: валидация, накопление сообщений об ошибках, защита формы от подделывания и т.д. |
|
|
|
|
JsHttpRequest - динамическая подкачка данных с поддержкой upload-а (AJAX) |
(Версия: 5.0 от 2007-04-04) [+] [есть мнение] |
| JsHttpRequest библиотека для создания AJAX-приложений, отличающаяся повышенной кроссбраузерностью, простотой и универсальностью, а также умеющая закачивать файлы на сервер без перезагрузки страницы и работать с формами целиком. Особенности:
Кроссбраузерность. Библиотека работает в IE5.0+, Mozilla 1.7+, FireFox 1.0+, Opera 7.3+, Safari (здесь "+" означает "в этой и более новых версиях"). Кроме того, код может работать без поддержки ActiveX и XMLHttpRequest (однако, если эти возможности включены в браузер, они автоматически задействуются).
Закачка файлов (upload) из браузера на сервер без перезагрузки страницы.
Полная поддержка отладочных возможностей PHP. Если в скрипте на серверной стороне происходит ошибка (включая фатальную, например, вызов неопределенной функции), клиентская часть имеет возможность корректно ее обработать и вывести диагностику. Помимо данных ответа, ей передается выходной поток скрипта, содержащий текст ошибки PHP.
Передача многомерных структур (аналог JSON) в данных запроса и ответа сервера. При этом используются стандартные средства PHP - многомерные массивы (данные запроса можно получить из $_REQUEST, данные ответа записываются в $_RESULT), а также стандартные средства JavaScript - вложенные объекты и свойства. Никакого XML на уровне API: работа происходит "родными" средствами языков.
Поддержка сессий PHP стандартными средствами.
Выбор оптимального метода загрузки данных (XMLHttpRequest, Microsoft.XMLHTTP, SCRIPT, IFRAME) в зависимости от браузера. В частности, возможность загружать данные с других хостов.
Интерфейс, совместимый с XMLHttpRequest.
|
|
|
|
|
Paper.js - The Swiss Army Knife of Vector Graphics Scripting |
[+] [обсудить] |
| Фреймворк для работы с векторной графикой, использующий для отрисовки тег canvas. Кроме функций для работы с графикой как с DOM-объектом в библиотеке предусмотрены средства для взаимодействия с клавиатурой и мышью, математические функции, элементы векторной геометрии и процедуры для использования кривых Безье. |
|
|
|
|
qooxdoo - JavaScript framework for creating rich internet applications |
(Версия: 4.0 от 2014-06-08) [+] [обсудить] |
| JavaScript-фреймворк, предназначенный для создания интерактивных web-приложений, снабженных пользовательским интерфейсом приближенным к оформлению десктоп-программ. Фреймворк имеет объектно-ориентированную архитектуру и по заявлению разработчиков позволяет создавать программы даже начинающим программистам, не знакомых с особенностями HTML, CSS и DOM. Кроме средств для разработки GUI-интерфейса в qooxdoo представлена поддержка расширенных средств для организации взаимодействия между клиентом и сервером (серверная часть доступна на языках Java, PHP, Perl, Python). Код фреймворка распространяется в рамках двойной лицензии LGPL/EPL. Демонстрирующие возможности qooxdoo скриншоты можно посмотреть здесь, а рабочую online-демонстрацию - здесь. |
|
|
|
|
|
|
yui - Yahoo! User Interface Library |
[+] [есть мнение] |
| Набор JavaScript библиотек для создания пользовательского интерфейса, используя Ajax и другие новинки составляющие Web 2.0. Например, различные виды анимации, надстройки над XMLHttpRequest и DOM, "Drag and Drop", средства для обработки событий, модули для создания слайдов, календарей и древовидных структур. Код распространяется под BSD лицензией.
Design Pattern Library - набор готовых наработок, таких как, "Drag and Drop" перетаскивание элементов страниц, автодополнение используя Ajax, создание меню в виде закладок, листание многостраничных документов, отображение рейтингов |
|
|
|
|
|
|
TiddlyWiki - reusable non-linear personal web notebook |
[+] [обсудить] |
| Wiki реализация выполненная полностью на JavaScript (~ 200 Кб кода). Никаких серверных скриптов не используется. Для того чтобы сохранить результат редактирования, после изменений страница сохраняется средствами браузера и сохраненный файл копируется на хостинг. При навигации данные не подгружаются из сети, а открываются мгновенно (весь сайт в одном файле).
ServerSideWiki - вариант с сохранением и подгрузкой блоков на сервере, написан на Ruby с использованием RubyonRails. |
|
|
|
|
Raphaël - JavaScript library for vector graphics on the web |
[+] [обсудить] |
| JavaScript-библиотека для упрощения создания векторной графики и выполнения таких манипуляций, как вращение виджетов. Для создания графики используется SVG или VML, при этом графический объект становится DOM-объектом, что позволяет использовать с ним обработчики событий. |
|
|
|
|
GWT - Google Web Toolkit |
[+] [обсудить] |
| Набор средств для разработки динамических web-приложений, которые изначально могут быть написаны на языке Java, а затем при помощи специального транслятора преобразованы в представление на базе JavaScript и HTML. |
|
|
|
|
node.js - evented I/O for V8 JavaScript |
[+] [обсудить] |
| Серверная платформа, позволяющая создавать высокопроизводительные сетевые приложение на языке JavaScript. Для обеспечения обработки большого числа параллельных запросов node.js использует для запуска кода асинхронную модель, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. По своей сути node.js похож на фреймворки Ruby Event Machine и Python Twisted, но цикл обработки событий (event loop) в node.js скрыт от разработчика и напоминает обработку событий работающим в браузере web-приложением, при этом функции платформы не ограничены web и поддерживают создание обычных сетевых клиентских и серверных программ.
В качестве способов мультиплексирования соединений поддерживается epoll, kqueue, /dev/poll и select. Для обеспечения выполнения JavaScript-кода используется разработанный компанией Google движок V8. Для мультиплексирования соединений используется библиотека libevent, для создания пула потоков (thread pool) задействована библиотека libeio, для выполнения DNS-запросов в неблокирующем режиме интегрирован c-ares. Все системные вызовы, вызывающие блокирование, выполняются внутри пула потоков и затем, как и обработчики сигналов, передают результат своей работы обратно через неименованный канал (pipe).
Для расширения функциональности приложений на базе node.js подготовлена большая коллекция модулей, в которой можно найти модули с реализацией HTTP/SMTP/XMPP/DNS/FTP/IMAP/POP3 серверов и клиентов, модули для интеграции с различными web-фреймворков, WebSocket и Ajax обработчики, коннекторы к СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонизаторы, CSS-движки, реализации криптоалгоритмов и систем авторизации (например, OAuth), XML-парсеры.
При написании приложений для node.js необходимо учитывать специфику событийно-ориентированного программирования, например, вместо выполнения "var result = db.query("select..");" с ожиданием завершения работы и последующей обработкой результатов, в node.js использует принцип асинхронного выполнения, т.е. код трансформируется в "db.query("select..", function (result) {обработка результата});", при котором управление мгновенно перейдет к дальнейшему коду, а результат запроса будет обработан по мере поступления данных. Ни одна функция в node.js не должна напрямую выполнять операции ввода/вывода - для получения данных с диска, от другого процесса или из сети требуется установка callback-обработчика.
Другие серверные JavaScript системы:
- Jaxer - позволяет выносить некоторые части web-приложения на сторону сервера;
- EJScript - web-фреймворк, использующий парадигму Model View Controller (MVC), принцип создания приложений в котором напоминает Ruby on Rails;
- RingoJS - еще один MVC-фремворк, написанный на Java и использующий JavaScript-движок Mozilla Rhino;
- AppengineJS - проект по обеспечению возможности выполнения JavaScript кода в окружении Google App Engine.
|
|
|
|
|