Выберите язык

Регистрация

Синонимы: Асинхронный JavaScript и XML

AJAX

AJAX (Asynchronous JavaScript and XML) — подход к веб-разработке, при котором JavaScript обменивается данными с сервером и обновляет часть страницы без её полной перезагрузки. На сайтах Joomla AJAX применяют, например, для поиска с подсказками, фильтрации каталога и отправки форм.

Как работает AJAX

После действия пользователя скрипт отправляет HTTP-запрос на сервер. Сервер обрабатывает его и возвращает ответ, затем скрипт обновляет нужную область интерфейса. Страница при этом остаётся открытой. Запросы выполняют через fetch или XMLHttpRequest.

Несмотря на XML в названии, обмен не обязан использовать XML. Часто сервер возвращает JSON, HTML или обычный текст. AJAX — не отдельный язык программирования и не конкретная библиотека.

Не любое изменение страницы — AJAX

Открытие вкладки или модального окна может происходить полностью в браузере, без сетевого запроса. Даже изменение счётчика корзины само по себе не доказывает, что данные записаны на сервере. Проверить обмен можно в разделе Network инструментов разработчика браузера.

AJAX в Joomla

Расширения Joomla могут обрабатывать запросы собственными контроллерами. Для ряда задач модулей и плагинов используется интерфейс com_ajax. Конкретный маршрут, формат ответа и проверка доступа зависят от расширения, поэтому произвольный запрос нельзя считать безопасным только из-за использования Joomla.

Операции изменения данных требуют серверной проверки ввода, прав пользователя и защиты от CSRF. Проверка в браузере не заменяет эти меры. Ответы с недоверенными данными нужно безопасно выводить в интерфейс.

Ошибки и удобство использования

Показывайте состояние загрузки и понятный результат операции. Обрабатывайте разрыв соединения и ошибки сервера, не оставляя пользователя с бесконечным индикатором. Защищайте форму от случайной повторной отправки. Обновлённые области должны оставаться доступны с клавиатуры и понятны пользователям экранных дикторов.

Итог

AJAX помогает сайту Joomla обновлять данные без полной перезагрузки. Качество решения зависит от обработки ошибок, доступности интерфейса и проверок на стороне сервера.

Упоминания:

JComments, XSS, ZOO

Список терминов
Весь глоссарий
Подписка на рассылку
Введите свой адрес электронной почты, и мы будем держать вас в курсе событий!

Joomla.center не связан с проектом Joomla!® или организацией Open Source Matters и не получает от них поддержки. Название и логотип Joomla!® используются на основании ограниченной лицензии, предоставленной Open Source Matters, владельцем товарного знака в США и других странах.