AJAX
Ajax (от англ. Asynchronous JavaScript and XML — «асинхронный JavaScript и XML»; по-английски произносится [эджэ́кс], по-русски чаще говорят [ая́кс]) — это подход к построению интерактивных пользовательских интерфейсов веб-приложений. При использовании Ajax веб-страница не перезагружается полностью в ответ на каждое действие пользователя. Вместо этого с веб-сервера догружаются только нужные пользователю данные. Ajax — один из компонентов концепции DHTML.
Об Ajax заговорили после появления 18 февраля 2005 г. статьи Джесси Джеймса Гарретта (Jesse James Garrett) «Новый подход к веб-приложениям». Ajax — это не самостоятельная технология, а идея.
Ajax базируется на двух основных принципах:
- использование DHTML для динамического изменения содержания страницы;
- использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например:
-
- с использованием XMLHttpRequest;
- через динамическое создание дочерних фреймов;
- через динамическое создание JavaScript с загрузкой тела script.
Использование этих двух принципов позволяет создавать намного более удобные веб-интерфейсы пользователя на тех страницах сайтов, где необходимо активное взаимодействие с пользователем. Использование Ajax стало наиболее популярно после того, как компания Google начала активно использовать его при создании своих сайтов, таких как Gmail, Google Maps и Google Suggest. Использование Ajax на этих сайтах подтвердило эффективность использования данного подхода.
Содержание |
Сравнение стандартного подхода и Ajax
Классическая модель веб-приложения
- Пользователь заходит на веб-страницу и нажимает на какой-нибудь её элемент.
- Браузер формирует и отправляет запрос серверу.
- В ответ сервер генерирует полностью новую веб-страницу и отправляет её браузеру и т. д.
Модель Ajax
- Пользователь заходит на веб-страницу и нажимает на какой-нибудь её элемент.
- Скрипт (на языке JavaScript) определяет, какая информация необходима для обновления страницы.
- Браузер отправляет соответствующий запрос на сервер.
- Сервер возвращает только ту часть документа, на которую пришел запрос.
- Скрипт вносит изменения с учётом полученной информации (без полной перезагрузки страницы).
Часто сервер передаёт не готовый HTML-код, а только данные; а HTML-элементы создаются исходя из этих данных, с использованием методов модификации DOM. При этом в качестве формата передачи данных обычно используются XML или JSON.
JSON хорош тем, что на стороне клиента его не надо обрабатывать каким-то специальным образом, достаточно выполнить вызов функции eval()
. Однако, исходя из соображений безопасности, его необходимо анализировать, так как при передаче вредоносного кода функция eval()
выполнит данный код.
См. также
Литература
- Дейв Крейн, Эрик Паскарелло, Даррен Джеймс «Ajax в действии» : Пер. с англ. — М. : Издательский дом «Вильямс», 2006. — 640 стр. с ил.
- Дари К., Бринзаре Б., Черчез-Тоза Ф., Бусика М. AJAX и PHP. Разработка динамических веб-приложений
Ссылки
- Google suggest и Google Maps — проекты, показавшие мощь и удобство Ajax
- Protopage — хороший пример сайта на Ajax (персональные заметки)
- eyeOS - online-рабочий стол на Ajax
- BIM - online-аггрегатор новостей на Ajax
- Браузер по Wikipedia.org - оболочка-навигатор по Wikipedia.org на Ajax
Разработчикам
- Статьи, посвященные использованию Atlas — фреймворка майкрософт-а для работы с AJAX.
- Статья Very Dynamic Web Interfaces — пример базового асинхронного запроса.
- Переводы статей Технология вебразработок Ajax — Раздел сайта MyJoomla.Ru посвященный технологии Ajax.
- Перевод статьи «Новый подход к веб-приложениям».
- Ajax security basics (англ.)
Книги на русском
Информационные ресурсы
- ASP.NET AJAX(англ.) - дистрибутив и документация по ASP.NET AJAX (для ASP.NET 2.0), технологии от Microsoft.
- AJAX Planet — новости, обзоры и статьи, посвященные Web 2.0 и, в первую очередь, AJAX.
- Технология Ajax. Новости — Все, что мы знаем об Ajax.
- Сайт ajaxframework team site — посвящен Ajax технологии, содержит ежедневно обновляемые новости, обзоры, статьи. Ориентирован как на пользователей, так и на разработчиков.
- Портал Ajax Patterns — посвящён разработке веб-приложений Ajax.
- Портал AJAX Impact — обзор новостей индустрии Ajax, инструментов для разработки, статьи.
- Портал Ajaxian — статьи по технологиям AJAX, DOM, Web 2.0. Новости, ссылки, обзоры веб-приложенй
- Сайт AjaxWorld Magazine — обзоры, статьи и мероприятия, посвященные разнобразным областям применения технологии Ajax.
- AJAX Scheme - Краткая схема AJAX на русском (в формате PDF)
- Портал Ajax in Next - Всё о ajax, примеры, статьи, описания, книги.
- Заметка Ajax - просто о сложном - ресурс для вебмастера.
Инструментарии
- Dojo Toolkit
- Ajaxium — Универсальный AJAX-конвертер для ASP.NET приложений.
- Atlas, реализация от Microsoft
- Atlas Control Toolkit — комплект бесплатных контролов для MS Atlas. Доступны исходники и документация. Желающие могут принять участие в проекте
- Rialto
- Google Web Toolkit — Инструментарий для Java-разработчиков от Google
- Sajax — реализация простого AJAX в PHP
- Prototype
- Rico
- script.aculo.us
- XAJAX — класс для разработчиков на PHP
- Subsys_JsHttpRequest от Дмитрия Котерова