AJAX (от англ. Asynchronous JavaScript and XML — «асинхронный JavaScript и XML») — это подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения могут быть сделаны более быстрыми и удобными.
По-английски AJAX произносится как эй-джэкс, по-русски довольно распространено ая́кс.
AJAX — это не самостоятельная технология, а скорее концепция использования нескольких смежных технологий. AJAX базируется на двух основных принципах:
использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например:
с использованием XMLHttpRequest (основной метод);
через динамическое создание дочерних фреймов;
через динамическое создание тега <script>.
использование DHTML для динамического изменения содержания страницы;
В качестве формата передачи данных обычно используются JSON или XML.
Впервые термин AJAX был публично использован 18 февраля 2005 в статье Джесси Джеймса Гарретта (Jesse James Garrett) «Новый подход к веб-приложениям». Гарретт придумал термин, когда ему пришлось как-то назвать новый набор технологий, предлагаемый им клиенту.
Однако в той или иной форме многие технологии были доступны и использовались гораздо раньше, например в подходе «Remote Scripting», предложенным компанией Microsoft в 1998, или с использованием HTML элемента IFRAME, появившегося в Internet Explorer 3 в 1996 году.
AJAX стал особенно популярен после использования его компанией Google в сервисах Gmail, Google Maps и Google Suggest.
Преимущества Экономия трафика
Использование AJAX позволяет значительно, сократить трафик при работе с веб-приложением, благодаря тому, что часто вместо загрузки всей страницы достаточно, загрузить только небольшую изменившуюся часть.
Уменьшение нагрузки на сервер
AJAX позволяет несколько снизить нагрузку на сервер, к примеру, в Gmail когда вы отмечаете прочитанные письма, серверу достаточно внести изменения в базу данных и отправить клиентскому скрипту сообщение об успешном выполнении операции, вместо необходимости повторно создавать страницу и отсылать ее клиенту.
Увеличение реакции интерфейса
Поскольку нужно загрузить только изменившуюся часть, то пользователь видит результат своих действий быстрее.
Недостатки
Интеграция со стандартными инструментами браузера
Динамически создаваемые страницы не регистрируются браузером в истории посещения страниц, поэтому не работает кнопка «Назад» предоставляющая пользователям возможность вернуться к просмотренным ранее страницам.
Другой недостаток изменения контента страницы при постоянном URL, заключается в невозможности сохранения закладки на желаемый материал. Частично решить эти проблемы можно с помощью динамического изменения идентификатора фрагмента (части URL после #), что позволяют многие браузеры.
Динамически загружаемое содержание недоступно поисковикам
Поисковые машины не могут выполнять JavaScript, поэтому разработчики должны позаботиться об альтернативных способах доступа к содержимому сайта.
Старые методы учета статистики сайтов становятся неактуальными
Многие сервисы статистики ведут учет просмотров новых страниц сайта, для сайтов страницы которых широко используют AJAX, такая статистика теряет актуальность.
Начинаем работать с AJAX