What is best practise for polling server with JavaScript for application that needs to refresh data very rapidly? I'm using jQuery for front-end and Java Spring Framework for backend.
Example of refreshed data could be list of items that are getting updated very rapidly (every 1 second).
Вы можете использовать функции jQuery Ajax для опроса сервера каждую секунду или около того. Затем сервер может ответить браузеру инструкциями почти в реальном времени.
Вы также можете использовать длительный опрос вместо вышеуказанного, чтобы уменьшить задержку без увеличения частоты опросов.
Цитирование Comet Daily: метод длительного опроса:
Техника длительного опроса Comet — это метод, который оптимизирует традиционный опрос для уменьшения задержки.
При традиционном опросе на сервер через фиксированные интервалы времени отправляется
XMLHttpRequest
. Например, открывайте новыйXMLHttpRequest
каждые 15 секунд, получайте немедленный ответ и закрывайте соединение.При длительном опросе запрос отправляется на сервер, но ответ не возвращается клиенту до тех пор, пока он не будет доступен. Как только соединение закрывается, либо из-за ответа, полученного клиентом, либо из-за истечения времени ожидания запроса, инициируется новое соединение. Результатом является значительное сокращение задержки, поскольку сервер обычно устанавливает соединение, когда он готов вернуть информацию для возврата клиенту.
В дополнение к сказанному выше, я также предлагаю вам ознакомиться с принятым ответом на следующий пост Stack Overflow для получения подробного описания метода длинного опроса:
Я поддерживаю предложение Дэниела использовать длинный опрос или push-уведомление. Ознакомьтесь
CometD — это масштабируемая шина маршрутизации событий на основе HTTP, в которой используется шаблон технологии Ajax Push, известный как Comet. Термин «Комета» был придуман Алексом Расселом в его статье «Комета: данные с низкой задержкой для браузера».
У них есть страница, объясняющая, как заставить работать Spring: