Что такое длинный опрос и короткий опрос?

Опубликовано: 20 Февраля, 2023

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

Опрос просто означает проверку новых данных в течение фиксированного интервала времени путем выполнения вызовов API через регулярные промежутки времени на сервер. Он используется для получения обновлений в реальном времени в приложениях. Есть много приложений, которым нужны данные в режиме реального времени, и опросы — спасение для таких приложений.

Различные типы опросов:

  • Короткий опрос : при коротком опросе клиент запрашивает данные с сервера, и сервер возвращает ответ, если он доступен, а если он недоступен, он возвращает пустой ответ. Этот процесс будет повторяться через равные промежутки времени.

Мы поймем короткий опрос на примере, где будем использовать AJAX для понимания короткого опроса, хотя мы также можем использовать обычные HTTP-запросы.

Шаги для короткого опроса с использованием AJAX приведены ниже:

  • создайте новый XMLHttpRequest.
  • Используйте метод open() объекта XMLHttpRequest, чтобы указать запрос.
  • Используйте метод send() XMLHttpRequest для отправки запроса на сервер.
  • Используйте свойство onreadystatechange XMLHttpRequest, чтобы определить функцию, которая поможет нам использовать наш ответ в любом месте.
  • Используйте responseText внутри этой функции, чтобы показать ваши данные в любом месте на веб-странице.
  • Поместите весь этот запрос и ответ в setInterval, указав интервал.
  • Затем поместите этот setInterval внутри функции, которая будет вызываться при нажатии кнопки.

Пример 1. В этом примере мы взяли файл сервера как data.json , который содержит некоторые данные.

данные.json:

{
    "name":"Manish",
    "age":"22",
    "city":"Kolkata"
}

Выход:

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

Долгий опрос: при коротком опросе возникла проблема: если ответ недоступен, сервер возвращает пустой ответ.

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

Пример 2: В этом примере мы поймем длинный опрос, где мы будем использовать AJAX для понимания длительного опроса, хотя мы также можем использовать обычные HTTP-запросы. Шаги описаны ниже:

  • Базовое создание XMLHttpRequest для отправки запросов такое же, как и в случае короткого опроса.
  • Но здесь, поскольку ответ возвращается сервером только тогда, когда он доступен. Таким образом, запрос не может быть сделан через фиксированные промежутки времени.
  • Поэтому следующий запрос мы отправим только после получения ответа на предыдущий запрос.

данные.json:

{
    "name":"Mridul",
    "age":"24",
    "city":"Banglore"
}

Выход:

Приложения для опроса в реальном мире: у опроса есть разные приложения в реальном мире. Некоторые из них описаны ниже:

  • Поставщик услуг такси: когда какой-либо пользователь заказывает такси из приложения поставщика услуг такси, в этом случае ему/ей необходимо каждую секунду проверять местоположение водителя, чтобы получить представление о том, как далеко водитель находится от места посадки.

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

  • Отслеживание поездов Когда любой пользователь хочет узнать текущее местоположение любого поезда, он использует приложение для отслеживания поездов. Так как местоположение поезда меняется каждое мгновение. Таким образом, в этом случае также необходим опрос, чтобы получать обновленное местоположение поезда в любое время, когда пользователь выполняет поиск.

Разница между коротким опросом и длинным опросом:

Короткий опрос

Длинный опрос

Он основан на таймере. Итак, он используется для тех приложений, которым необходимо обновлять данные через фиксированный интервал времени.

Он основан на получении ответа. Итак, он используется для тех приложений, которые не хотят пустых ответов.

Здесь можно отправить пустой ответ, если ответ недоступен.

Здесь никогда не может быть отправлен пустой ответ.

Это менее предпочтительно.

Это более предпочтительно по сравнению с коротким опросом.

Это создает много трафика.

Это также создает трафик, но меньше, чем короткий опрос.