AJAX

AJAX

AJAX, Ajax (ˈeɪdʒæks, от англ. Asynchronous Javascript and XML — «асинхронный JavaScript и XML») — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся более быстрыми и удобными.

Модель классических приложений для сети (слева) в прямом сравнении с применением Ajax (справа).

По-английски AJAX произносится как «э́йджэкс», по-русски довольно распространено «ая́кс».


Содержание

Технология

AJAX — не самостоятельная технология, а концепция использования нескольких смежных технологий. AJAX базируется на двух основных принципах:

  • использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например:
  • с использованием XMLHttpRequest (основной объект);
  • через динамическое создание дочерних фреймов[1];
  • через динамическое создание тега <script>[2].
  • через динамическое создание тега <img>, как это реализовано в google analytics.
  • использование DHTML для динамического изменения содержания страницы;

В качестве формата передачи данных могут использоваться фрагменты простого текста, HTML-кода, JSON или XML.

История

Впервые термин AJAX был публично использован 18 февраля 2005 года в статье Джесси Джеймса Гарретта (Jesse James Garrett) «Новый подход к веб-приложениям»[3]. Гарретт придумал термин, когда ему пришлось как-то назвать новый набор технологий, предлагаемый им клиенту.

Однако в той или иной форме многие технологии были доступны и использовались гораздо раньше, например в подходе «Remote Scripting», предложенном компанией Microsoft в 1998 году, или с использованием HTML элемента IFRAME, появившегося в Internet Explorer 3 в 1996 году.

AJAX стал особенно популярен после использования его компанией Google в сервисах Gmail, Google Maps и Google Suggest.

Преимущества

Экономия трафика 
Использование AJAX позволяет значительно сократить трафик при работе с веб-приложением благодаря тому, что часто вместо загрузки всей страницы достаточно загрузить только изменившуюся часть, как правило, довольно небольшую.
Уменьшение нагрузки на сервер 
AJAX позволяет несколько снизить нагрузку на сервер. К примеру, на странице работы с почтой, когда вы отмечаете прочитанные письма, серверу достаточно внести изменения в базу данных и отправить клиентскому скрипту сообщение об успешном выполнении операции без необходимости повторно создавать страницу и передавать её клиенту.
Ускорение реакции интерфейса 
Поскольку нужно загрузить только изменившуюся часть, пользователь видит результат своих действий быстрее.

Недостатки

Отсутствие интеграции со стандартными инструментами браузера 
Динамически создаваемые страницы не регистрируются браузером в истории посещения страниц, поэтому не работает кнопка «Назад», предоставляющая пользователям возможность вернуться к просмотренным ранее страницам, но существуют скрипты, которые могут решить эту проблему.
Другой недостаток изменения содержимого страницы при постоянном URL заключается в невозможности сохранения закладки на желаемый материал. Проблему можно успешно решить с помощью History.pushState.[4]
Динамически загружаемое содержимое недоступно поисковикам (если не проверять запрос, обычный он или XMLHttpRequest
Поисковые машины не могут выполнять JavaScript, поэтому разработчики должны позаботиться об альтернативных способах доступа к содержимому сайта.
Старые методы учёта статистики сайтов становятся неактуальными 
Многие сервисы статистики ведут учёт просмотров новых страниц сайта. Для сайтов, страницы которых широко используют AJAX, такая статистика теряет актуальность.
Усложнение проекта 
Перераспределяется логика обработки данных — происходит выделение и частичный перенос на сторону клиента процессов первичного форматирования данных. Это усложняет контроль целостности форматов и типов. Конечный эффект технологии может быть нивелирован необоснованным ростом затрат на кодирование и управление проектом, а также риском снижения доступности сервиса для конечных пользователей.
Требуется включенный JavaScript в браузере 
JavaScript может быть выключен из соображений безопасности. И, конечно же, AJAX-страницы труднодоступны неполнофункциональным браузерам, роботам и веб-архивам.

Альтернативы

В хронологическом порядке:

Библиотеки

  • AJAX.OOP — JavaScript-фреймворк;
  • ASP.NET AJAX — библиотека классов JavaScript, библиотека элементов управления для ASP.NET;
  • Dojo — многофункциональный JavaScript-инструментарий;
  • Extjs — JavaScript-библиотека;
  • Google Web Toolkit — инструментарий для Java-разработчиков;
  • JsHttpRequest AJAX-библиотека с поддержкой AJAX-закачки файлов на сервер и многими другими возможностями;
  • jQuery — JavaScript-библиотека;
  • MooTools — JavaScript-библиотека;
  • Prototype — JavaScript-библиотека, также доступная в Ruby on Rails;
  • script.aculo.us — JavaScript-библиотека, также доступная в Ruby on Rails;
  • xajax — PHP и JavaScript-библиотека;
  • ZK Framework — бесплатная библиотека ZK Framework.

См. также

Примечания

Литература

  • Б. Маклафлин. Изучаем Ajax = Head Rush Ajax. — СПб.: Питер, 2007. — ISBN 978-5-91180-322-3
  • Стивен Хольцнер. Ajax Библия программиста = Ajax Bible. — М.: Диалектика, 2009. — С. 553. — ISBN 978-5-8459-1502-3
  • Дейв Крейн, Бер Бибо, Джордон Сонневельд. Ajax на практике = Ajax in Practice. — М.: Вильямс, 2007. — ISBN 978-5-8459-1327-2
  • Дэниел Вулстон. Ajax и платформа .NET 2.0 для профессионалов = Pro Ajax and the .NET 2.0 Platform. — М.: Вильямс, 2007. — С. 464. — ISBN 1-59059-670-6
  • Дейв Крейн, Эрик Паскарелло, Даррен Джеймс. AJAX в действии: технология — Asynchronous JavaScript and XML = Ajax in Action. — М.: Вильямс, 2006. — С. 640. — ISBN 1-932394-61-3

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "AJAX" в других словарях:

  • AJAX — [ˈædʒæks] ist ein Apronym für die Wortfolge „Asynchronous JavaScript and XML“. Es bezeichnet ein Konzept der asynchronen Datenübertragung zwischen einem Server und dem Browser, das es ermöglicht, innerhalb einer HTML Seite eine HTTP Anfrage… …   Deutsch Wikipedia

  • AJaX — [ˈædʒæks] ist ein Apronym für die Wortfolge „Asynchronous JavaScript and XML“. Es bezeichnet ein Konzept der asynchronen Datenübertragung zwischen einem Server und dem Browser, das es ermöglicht, innerhalb einer HTML Seite eine HTTP Anfrage… …   Deutsch Wikipedia

  • Ajax — may refer to: Mythology * Ajax (mythology), son of Telamon and a hero in the Trojan war, also known as Ajax the Great * Ajax the Lesser, son of Oileus and also a hero in the Trojan warPeople*Ajax (missionary), Arian missionary who converted the… …   Wikipedia

  • Ajax — ist der Name mehrerer Personen: Ajax der Große, Sohn des Königs Telamon von Salamis, einer der Haupthelden des Trojanischen Kriegs Ajax der Kleine, König von Lokris, der „Oileus Sohn“ Ajax (Missionar), ein westgotischer Missionar, der um 464 n.… …   Deutsch Wikipedia

  • ajax — héros grec qui devint fou parce qu on avait donné à Ulysse les armes d Achille mort; croyant tuer des ennemis, il massacra le bétail des Grecs et se suicida. ⇒AJAX, subst. masc. A. Guerrier intrépide et impétueux : • Tout ce qui m est permis, c… …   Encyclopédie Universelle

  • AJAX — technologijos statusas T sritis dirbtinis intelektas apibrėžtis Rinkinys saityno technologijų, kuriomis interaktyvaus tinklalapio atskiros dalys atnaujinamos asinchroniškai, neperkraunant viso tinklalapio. Toks atnaujinimas vykdomas įvykus… …   Lithuanian dictionary (lietuvių žodynas)

  • Ajax — technologijos statusas T sritis dirbtinis intelektas apibrėžtis Rinkinys saityno technologijų, kuriomis interaktyvaus tinklalapio atskiros dalys atnaujinamos asinchroniškai, neperkraunant viso tinklalapio. Toks atnaujinimas vykdomas įvykus… …   Lithuanian dictionary (lietuvių žodynas)

  • Ajax — Ajax. Unter diesem Namen sind zwei trojanische Helden bekannt. Ajax, der Lokrer, ein Sohn des Oileus, erschien mit 40 Schiffen vor Troja. Nach der Einnahme der Stadt entweihte er im Tempel der Minerva die Priesterin Kassandra. Zur Strafe für… …   Damen Conversations Lexikon

  • Ajax — ● AJAX, hace referencia a una tecnología que hace uso de JavaScript asíncrono + XML para el desarrollo web. ● El Ajax de Amsterdam es un equipo de fútbol holandés. ● Ajax también hace referencia a una marca de diversos productos relacionados con… …   Enciclopedia Universal

  • Ajax — name of two Greek heroes in the Trojan War (Great Ajax, son of Telamon, and Little Ajax, son of Oileus), Latin, from Gk. Aias, perhaps originally the name of an earth god, from aia earth. The Elizabethans punned on the name as a jakes a privy …   Etymology dictionary

  • Ajax — [ā′jaks΄] n. [L < Gr Aias] Gr. Myth. 1. a strong, brave Greek warrior in the Trojan War who kills himself when Achilles armor is given to Odysseus: called Ajax Telamon [tel′ə män΄] 2. one of the swiftest runners among the Greek warriors in the …   English World dictionary


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»