AJAX

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Ajax»)
Перейти к: навигация, поиск

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

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

Содержание

[править] Технология

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

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

В качестве формата передачи данных обычно используются 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 заключается в невозможности сохранения закладки на желаемый материал. Частично решить эти проблемы можно с помощью динамического изменения идентификатора фрагмента (части URL после #), что позволяют многие браузеры.[4]
  • Динамически загружаемое содержимое недоступно поисковикам (если не проверять запрос, обычный он или XMLHttpRequest)
    Поисковые машины не могут выполнять JavaScript, поэтому разработчики должны позаботиться об альтернативных способах доступа к содержимому сайта.
  • Старые методы учёта статистики сайтов становятся неактуальными
    Многие сервисы статистики ведут учёт просмотров новых страниц сайта. Для сайтов, страницы которых широко используют AJAX, такая статистика теряет актуальность.
  • Усложнение проекта
    Перераспределяется логика обработки данных — происходит выделение и частичный перенос на сторону клиента процессов первичного форматирования данных. Это усложняет контроль целостности форматов и типов. Конечный эффект технологии может быть нивелирован необоснованным ростом затрат на кодирование и управление проектом, а также риском снижения доступности сервиса для конечных пользователей.
  • Требуется включенный JavaScript в браузере

[править] Альтернативы

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

[править] Библиотеки

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

[править] Примечания

[править] См. также

[править] Ссылки

[править] Литература

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты
На других языках