( «асинхронный javascript и XML») — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных, веб-страница не перезагружается полностью и веб-приложения становятся более быстрыми и удобными.
AJAX.OOP — javascript фреймворк с открытым исходным кодом, распространяемым по лицензии MIT License. Предоставляет к использованию движок программирования в ООП-стиле для javascript и функциональность по обработке AJAX-запросов. Функциональность библиотеки может быть легко расширена благодаря ООП подходу. В то же время библиотека может успешно стать основой для других проектов.
Библиотека javascript с парадигмой ООП:
AJAX.OOP — быстрая и расширяемая javascript библиотека, которая предоставляет возможность создавать javascript/AJAX компоненты в контексте объектно-ориентированного подхода.
Основная особенность — сильная реализация парадигмы ООП, которая действительно имеет отличия от иных существующих реализаций. AJAX.OOP движок позволяет:
* Создавать классы
* Наследовать классы (как определённые в стиле AJAX.OOP, так и определённые обычным способом в javascript)
* Агрегировать классы (включая агрегацию себя и родителя через операторы доступа this.$_self and this.$_super)
* Определять конструкторы как они есть (имя конструкторов => 'constructor')
* Переопределять методы и свойства родительского класса (при этом родительские методы и свойства всегда доступны через оператор доступа this.$super)
* Получать доступ к любым свойствам и вызывать любые методы родительского класса из произвольного места дочернего класса (для чего используется оператор доступа this.$super)
* Пользоваться «нормальными» объектами с работающим оператором 'instanceof' и иными встроенными возможностями.
Dojo — свободная модульная библиотека javascript. Разработана с целью упростить ускоренную разработку основанных на javascript или AJAX приложений и сайтов. Разработка библиотеки была начата Алексом Русселом в 2004 году. Библиотека находится под двойной лицензией: BSD License и Academic Free License. Dojo Foundation — некоммерческая организация, созданная для продвижения Dojo. Dojo используется в Zend Framework, начиная с версии 1.6.0.
Элементы интерфейса:Элементы интерфейса dojo — это пакеты, сформированные из компонентов: javascript-кода, разметки HTML и CSS. Они могут быть использованы для добавления различных интерактивных возможностей к сайту:
* меню, закладок, всплывающих подсказок;
* селекторов даты, времени; часов;
* сортируемых таблиц, динамических диаграмм, векторной 2D графики;
* элементов интерфейса «дерево», с возможностями drag-and-drop;
* Rich Text Editor;
* различных HTML-форм с возможностью проверки ввода пользователя;
* анимированных эффектов, и возможностей построения своих собственных эффектов.
Асинхронная связь:
Одной из важных особенностей AJAX-приложений является асинхронная связь между браузером и сервером: благодаря обмену информацией, вид страницы обновляется без перезагрузки страницы. Обычно это делается с помощью javascript-объекта XMLHttpRequest. Dojo предоставляет класс-«обертку» (dojo.io.bind), который позволяет абстрагироваться от различных реализаций XMLHttpRequest в браузерах, в том числе работающих через iframe. Используя эту технологию, становится просто создавать приложения, передающие вводимые пользователем данные на сервер. Сервер может ответить на это определённым javascript’ом и обновить вид страницы.
javascript-программирование
Многие возможности dojo облегчают программирование на javascript.
* Абстракция от среды выполнения; Dojo предоставляет возможности для определения и работы с различными веб-браузерами и другими средами выполнения javascript (такими как Rhino).
* Dojo поддерживает разработку и распространение собственных элементов интерфейса и включает в себя библиотеку утилит для манипуляций с DOM.
* Система событий, которая позволяет реагировать не только на события DOM, но и на другие события, такие как, например, вызов определённой функции. Это позволяет в большей степени использовать аспектно-ориентированное программирование.
* Абстрагированный интерфейс для манипулирования javascript-классами, предоставляющий возможность наследования и позволяющий расширять существующие классы с помощью набора функций, вместо того, чтобы управлять непосредственно прототипами объектов.
Система пакетов:Dojo предоставляет систему пакетов, облегчающую модульную разработку функциональности пакетов и суб-пакетов. «Загрузочный» скрипт инициализирует набор иерархических пакетных пространств имён: «io», «event», и т. д. — внутри корневого пространства имён «dojo». После инициализации корневого пространства имён, любой пакет Dojo может быть загружен (с помощью XMLHttpRequest или сходного способа) с помощью специальных функций загрузочного скрипта. Возможно также инициализировать дополнительные пространства имён внутри или вне пространства имён «dojo», что позволяет расширять dojo или разрабатывать закрытые пространства имён для сторонних библиотек и приложений. Пакет dojo может содержать множество файлов. Любой пакет или файл могут определять зависимости от других файлов или пакетов. Когда такой пакет загружается, все необходимые зависимости подгружаются автоматически.
Хранилище на стороне клиента:Dojo предоставляет абстрактное хранилище данных на стороне клиента — Dojo Storage. Dojo Storage позволяет веб-приложениям хранить мегабайты данных на стороне клиента, постоянно и защищённо, с правами пользователя. Это работает для всего существующего веба, включая Internet Explorer, Mozilla Firefox и Safari. Будучи включённой в веб-страницу, Dojo Storage определяет лучший метод хранения информации. Для Firefox 2 используется «родной» интерфейс, в других браузерах используется скрытый Flash-апплет. Так как Flash 6+ установлен приблизительно на 95% компьютеров по всему миру,[1] этот механизм хранения информации доступен большинству. Для тех веб-приложений, которые загружаются из файловой системы (то есть URL=file://…), Dojo Storage будет прозрачно использовать XPCOM в Firefox или ActiveX в Internet Explorer. Программист, использующий dojo, не обязан задумываться о тонкостях реализации — он просто получает в свои руки абстрагированные методы put() и get().
Google Web Toolkit (GWT) — свободный Java фреймворк, который позволяет веб-разработчикам создавать Ajax приложения на основе Java. Выпускается под лицензией Apache версии 2.0. GWT делает акцент на повторное использование и кроссбраузерную совместимость.
История:Версия 1.0 RC 1 (build 1.0.20) выпущена 16 мая 2006 года. Компания Google анонсировала GWT на конференции JavaOne в 2006 году.
История версий: *
GWT 1.0 — 17 мая 2006 года
*
GWT 1.1 — 11 августа 2006 года
*
GWT 1.2 — 16 ноября 2006 года
*
GWT 1.3 — 5 февраля 2007 года
*
GWT 1.4 — 28 августа 2007 года
*
GWT 1.5 — 27 августа 2008 года
*
GWT 1.6 — 7 апреля 2009 года
*
GWT 1.7 — 13 июня 2009 года
*
GWT 1.7.1 — 22 сентября 2009 года
*
GWT 2.0 — 8 декабря 2009 года
Разработка:Используя GWT, разработчики могут быстро писать и отлаживать AJAX приложения на языке Java, используя инструментарий отладки Java. Компилятор GWT переведёт код Java приложения в соответствующий браузеру javascript и HTML.
Утилита командной строки applicationCreator, поставляемая вместе с GWT, автоматически создает все файлы, необходимые для нового GWT-проекта. Она также позволяет создавать файлы проекта Eclipse.
Существует подключаемый модуль Google Plugin для IDE Eclipse версий 3.3 — 3.5, позволяющий упростить процессы создания GWT-проекта и размещения готовых приложений на сервисе Google App Engine.
Компоненты:Основные компоненты GWT:Компилятор GWT Java-to-javascript
Переводит Java код в javascript.
GWT Hosted Web Browser
Позволяет запускать GWT приложения в режиме hosted (приложения запускаются как Java код в JVM без компиляции в javascript).
JRE emulation library
Реализация часто используемых стандартных Java классов на javascript.
GWT Web UI class library
Множество пользовательских интерфейсов и классов для создания виджетов.
jQuery — библиотека javascript, фокусирующаяся на взаимодействии javascript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API по работе с Ajax.
Содержание
История создания:HTML была одной из первых вещей, которую Джон Резиг освоил когда он только начал заниматься программированием. Резиг программировал на QBasic, когда один его знакомый показал ему, как создать веб-страницу (используя Angelfire), а также основы HTML. Отец подарил ему на Рождество две книги по HTML. Именно тогда, когда он только начал программировать на Visual Basic, HTML и веб-дизайн очень заинтересовали его.
Но страсть к javascript пришла значительно позже, примерно в 2004 году. Тогда Резиг получал степень в области компьютерных наук и работал на полставки в местной фирме Brand Logic. Он занимался дизайном сайта, в котором создавался пользовательский скроллинг. Джон был разочарован и расстроен, особенно потому, что использовал код других разработчиков, после чего решил серьезно изучить javascript. Изучив, пришел к выводам, что javascript — это простой, но изящный язык, который является невероятно мощным решением многих задач. В течение ближайших пары лет Д. Резиг создал множество различных javascript приложений, прежде чем закончить создание jQuery. Библиотека была представлена общественности на компьютерной конференции «BarCamp» в Нью-Йорке в 2006 году.
Основной целью создания jQuery Резиг видел возможность закодировать многоразовые куски кода, которые позволят упростить javascript и использовать их так, чтобы не беспокоиться о кросс-браузерных вопросах. Ночь в начале 2006 года Резиг запомнил на всю жизнь как счастливую: он закончил работу над jQuery и запустил его в Internet Explorer — все заработало. Это был успех!
Возможности:
* Переход по дереву DOM, включая поддержку XPath как плагина;
* события;
* визуальные эффекты;
* AJAX-дополнения;
* javascript-плагины.
Философия:Точно так же, как CSS отделяет визуализацию от структуры HTML, JQuery отделяет поведение от структуры HTML. Например, вместо прямого указания на обработчик события нажатия кнопки, управление передаётся JQuery, идентифицирующей кнопки и затем преобразовывающий его в обработчик события клика. Такое разделение поведения и структуры также называется принципом ненавязчивого javascript.
Библиотека jQuery содержит функционал, полезный для максимально широкого круга задач. Тем не менее, разработчиками библиотеки не ставилась задача совмещения в jQuery функций, которые подошли бы всюду, поскольку это привело бы к большому коду, большая часть которого не востребована. Поэтому была реализована архитектура компактного универсального ядра библиотеки и плагинов[2]. Это позволяет собрать для ресурса именно тот javascript-функционал, который на нём был бы востребован.
Использование:jQuery, как правило, включается в веб-страницу как один внешний javascript-файл:
<head>
<script type="text/javascript" src="путь/к/jQuery.js"></script>
</head>
Вся работа с jQuery ведётся с помощью функции $. Если на сайте применяются другие javascript библиотеки, где $ может использоваться для своих нужд, то можно использовать её синоним — jQuery. Второй способ считается более правильным, а чтобы код не получался слишком громоздким можно писать его следующим образом:
jQuery(function($) {
// Тут код скрипта, где в $ будет jQuery
})
Работу с jQuery можно разделить на 2 типа:
* Получение jQuery-объекта с помощью функции $(). Например, передав в неё CSS-селектор, можно получить jQuery-объект всех элементов HTML попадающих под критерий и далее работать с ними с помощью различных методов jQuery-объекта.
* Вызов глобальных методов у объекта $, например, удобных итераторов по массиву.
Типичный пример манипуляции сразу несколькими узлами DOM заключается в вызове $ функции со строкой селектора CSS, что возвращает объект jQuery, содержащий некоторое количество элементов HTML-страницы. Эти элементы затем обрабатываются методами jQuery. Например,
$("div.test").add("p.quote").addClass("blue").slideDown("slow");
находит все элементы <div> с классом test, а также все элементы <p> с классом quote, и затем добавляет им всем класс blue и визуально плавно спускает вниз.
Методы, начинающиеся с $., удобно применять для обработки глобальных объектов. Например:
<source lang="javascript">
$.each([1,2,3], function() {
document.write(this + 1);
});
добавит на страницу <code>234</code>.
$.ajax и соответствующие функции позволяют использовать методы
AJAX. Например:
$.ajax({
type: "POST",
url: "some.php",
data: {name: 'John', location: 'Boston'},
success: function(msg){
[color=#000066]alert( "Data Saved: " + msg );
}
});
В этом примере идет обращение к скрипту some.php с параметрами name=John&location=Boston и полученный результат выдается в сообщении посредством alert().
Пример добавления к элементу обработчика события click с помощью jQuery:
jQuery(function($) {
$("a").click(function() {
alert("Hello world!");
});
});
В данном случае при нажатии на элемент <A> происходит вызов alert("Hello world!").
MooTools — это свободный javascript фреймворк для разработки кроссбраузерных веб-приложений и веб-сервисов.
MooTools является компактным, модульным, объектно-ориентированным фреймворком, созданным для помощи опытным разработчикам javascript. Он позволяет писать мощный, гибкий и кроссбраузерный код благодаря элегантному, хорошо документированному и последовательному API.
MooTools совместим и протестирован с браузерами: Safari 2+, Internet Explorer 6+, Firefox 2+ (и другими, основанными на движке Gecko), Opera 9+.
Фреймворк MooTools используется в CMS Typolight, Joomla 1.5, ZoneMinder.
Объектно-ориентированное программирование:
MooTools содержит мощную коллекцию классов и продвинутую систему наследования, которая позволяет вторичное использование кода, а так же его расширение. Например:
Также предоставляет собственный набор классов, с помощью которых возможна, например, реализация различных эффектов. К ним относятся изменения размеров окна браузера, показ и гашение объектов, эффекты движения и Ajax.
Ext JS — библиотека javascript для разработки веб-приложений и пользовательских интерфейсов, изначально задуманная как расширенная версия Yahoo! UI Library, однако преобразовавшаяся затем в отдельный фреймворк. Использует адаптеры для доступа к библиотекам Yahoo! UI Library, jQuery или Prototype/script.aculo.us. Поддерживает технологию AJAX, анимацию, работу с DOM, реализацию таблиц, вкладок, обработку событий и все остальные новшества «Web 2.0».
С версии 2.1 библиотека ExtJS распространяется по условиям трёх лицензий: Commercial License, Open Source License и OEM / Reseller License. подробнее о лицензиях
Начиная с версии Ext JS 3.0 библиотека разбивается на две части: Ext Core (набор javascript функций, позволяющий создавать динамические веб-страницы и распространяемый по MIT-лицензии) и Ext JS (набор виджетов для создания пользовательских интерфейсов, распространяемый аналогично Ext JS 2.1 по условиям трёх лицензий).
На jabber.ru действует русскоязычная jabber-конференция разработчиков на ExtJS.
Prototype — javascript фреймворк, упрощающий работу с Ajax и некоторыми другими функциями. Несмотря на его доступность в виде отдельной библиотеки, он обычно используется программистами вместе с Ruby on Rails, script.aculo.us и Rico.
Заявлено, что данный фреймворк поддерживается следующими браузерами: Internet Explorer (Windows) 6.0+, Mozilla Firefox 1.5+, Apple Safari 2.0+ и Opera 9.25+. Поддержка данных браузеров также подразумевает, что фреймворк поддерживается также Camino, Konqueror, IceWeasel, Netscape 7+, SeaMonkey, и др., которые принадлежат этим же семействам.
Возможности:В Prototype присутствуют самые разные способы упрощения создания javascript приложений, от сокращённого вызова некоторых функций языка до сложных методов обращения к XMLHttpRequest. Ниже приведены некоторые примеры.
Функция $$()Функция $F()
Функция $A() script.aculo.us — javascript-библиотека для разработки пользовательского интерфейса веб-приложений, построенная на фреймворке Prototype.
Обычно используется программистами вместе с Ruby on Rails, однако также доступен в виде отдельной библиотеки, и присутствует в составе некоторых других каркасов для разработки сайта.
Был создан Томасом Фукс в процессе работы над веб-интерфейсом инструмента цифрового управления активами Fluxiom компании Wollzelle, впервые был опубликован в июне 2005 года.
Возможности:script.aculo.us использует Prototype в качестве фундамента и добавляет усовершенствованные методы работы с AJAX-запросами, класс под названием Builder для манипуляций с DOM-элементами, а также инструменты для создания специальных эффектов любой сложности.
Визуальные эффекты:
ZK — свободный фреймворк для разработки Ajax веб-приложений, реализованный полностью на Java. Он позволяет разрабатывать полноценные пользовательские интерфейсы для веб-приложений без применения javascript и при этом обходится небольшим количеством программного кода.
Архитектура ZK основывается на Ajax событийно-управляемый механизм, более 70 XUL и 80 XHTML компонент, и специальный язык разметки для разработки пользовательского интерфейса. Программисты разрабатывают дизайн своих приложений с помощью многофункциональных XUL/XHTML компонент, и управляют ими на основе событий, вызываемых действиями пользователей. Это схоже с программной моделью, используемой в десктопных GUI приложениях.
xajax — PHP и javascript библиотека. Предоставляет разработчикам веб-приложений простую реализацию технологии Ajax, а начиная с версии 0.5 еще и PHP-инструменты для формирования HTML-форм и документов. В отличие от многих других подобных библиотек, xajax позволяет разрабатывать Ajax-приложения, не требуя от разработчика знания javascript.
Данный материал представленный из: wikipedia