Пользователи сайтов ждут, что данные будут подгружаться быстро, а интерфейс — реагировать мгновенно. Всё это возможно благодаря AJAX. Рассказываем о нём подробнее.
До появления AJAX любое взаимодействие с сервером приводило к перезагрузке страницы. Даже для простого действия — отправки формы или смены фильтра — нужно было повторно загрузить HTML, CSS и скрипты. Интерфейсы были медленными и неудобными. AJAX помог разделить загрузку данных и отображение интерфейса. В результате сервер передаёт только нужную информацию. А браузер обновляет только те элементы страницы, которые действительно изменились.
Освоить различные подходы к фронтенд-разработке IT-продуктов можно на курсе Практикума «Фронтенд-разработчик». Студенты учатся на реальных проектах, чтобы легче было стартовать в IT. В программе также есть модуль по алгоритмам — чтобы повысить шансы устроиться в Яндекс.
Рассмотрим подробнее принципы AJAX. Его работа строится на асинхронном обмене данными между браузером и сервером. Запросы выполняются в фоне и не блокируют работу страницы. Процесс можно разбить на несколько шагов:
В современных браузерах AJAX-запросы обычно выполняются с помощью API fetch. Он встроен в JavaScript и не требует сторонних библиотек. Простейший AJAX-запрос на получение данных выглядит так:
fetch ('/api/users')
.then (response => response.json ())
.then (data => {
console.log (data);
})
.catch (error => {
console.error (error);
});
Что здесь происходит:
● fetch ('/api/users') — отправляется GET-запрос на сервер.
● response.json () — ответ преобразуется в объект JavaScript.
● data — полученные данные, с которыми можно работать дальше.
● catch — обработка ошибок сети или сервера.
AJAX часто используется для отправки данных, например из формы:
fetch ('/api/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify ({
email: 'user@mail.com',
password: '123456'
})
});
В этом примере:
● используется метод POST;
● данные передаются в формате JSON;
● страница не перезагружается после отправки.
AJAX используется в большинстве интерактивных элементов современных сайтов. Рассмотрим основные сценарии, где AJAX применяется чаще всего.
| Преимущества | Недостатки |
| Быстрый отклик интерфейса: данные загружаются в фоне, без перезагрузки страницы. | Усложнение клиентской логики и увеличение объёма JavaScript-кода. |
| Улучшенный пользовательский опыт за счёт плавной работы интерфейса. | Сложнее отлаживать ошибки и отслеживать состояние приложения. |
| Экономия трафика: сервер передаёт только необходимые данные. | Повышенные требования к архитектуре и качеству кода. |
| Возможность обновлять отдельные части страницы. | Зависимость от JavaScript — без него функциональность может быть недоступна. |
| Подходит для создания интерактивных интерфейсов. | Возможные проблемы с SEO при неправильной реализации |
| Широкая поддержка в браузерах |
AJAX в чистом виде используют всё реже. В современной веб-разработке он чаще становится частью более высокоуровневых решений.
Читать также: