Когда использовать асинхронный или синхронный AJAX

Обычно лучше использовать запросы в асинхронном режиме.

AJAX (от английского Asynchronous Javascript And Xml – асинхронный JavaScript и XML) – технология, которая позволяет асинхронно обновлять веб-страницы. Благодаря чему браузеру не нужно перезагружать всю страницу, когда изменился только небольшой объем данных, представленных на ней. AJAX передает на сервер и с сервера только обновленную информацию.

Стандартные веб-приложения обрабатывают взаимодействия, происходящие между посетителями и сервером, синхронно. Действия происходят поочередно, потому что сервер не обладает многозадачностью. Если нажать кнопку, сообщение отправляется на сервер, а оттуда приходит ответ. И пока ответ не будет получен, пользователь не  сможет взаимодействовать с другими элементами страницы.

Естественно, такая задержка негативно влияет на пользовательский опыт. Чтобы исправить это, необходимо использовать AJAX.

Что такое AJAX?

AJAX ‒ это подход к реализации, включающий в себя клиентский скрипт (запускается в браузере), который обменивается данными с веб-сервером.

AJAX- приложение для отправки данных может использовать XML, простой текст или JSON. Но в целом браузер использует объект XMLHttpRequest для запроса данных с сервера, а JavaScript – для отображения данных.

AJAX: синхронный или асинхронный

AJAX может отправлять запросы на сервер синхронно и асинхронно:

  • Синхронно: скрипт останавливается и ждет, пока сервер отправит ответ, прежде чем продолжить.
  • Асинхронно: скрипт разрешает обработку страницы и обрабатывает ответ, когда и если он придет.

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

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

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

Зачем использовать синхронный AJAX?

Бывают ситуации, когда нельзя разрешать посетителю продолжать взаимодействие с веб-страницей пока не завершится конкретный процесс на стороне сервера.

В подобных случаях лучше е не использовать AJAX, а просто перезагрузить всю страницу. Синхронная загрузка в AJAX используется, когда нет возможности использовать асинхронный вызов, но перезагрузка всей страницы не требуется. Например, при обработке транзакций. И при этом важно, в каком порядке они будут обработаны. Или если после нажатия кнопки пользователя необходимо перенаправить на страницу подтверждения. Данная задача требует синхронизации запросов.