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

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

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

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

Содержание

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

Что такое AJAX?

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

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

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

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

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

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

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

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

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

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

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

Данная публикация представляет собой перевод статьи «When to Use Asynchronous or Synchronous AJAX» , подготовленной дружной командой проекта Интернет-технологии.ру

Меню