Вот полезная статья о длинном опросе (длительный HTTP-запрос) с использованием jQuery. Фрагмент кода, полученный из этой статьи:
(function poll() {
setTimeout(function() {
$.ajax({
url: "/server/api/function",
type: "GET",
success: function(data) {
console.log("polling");
},
dataType: "json",
complete: poll,
timeout: 2000
})
}, 5000);
})();
Следующий запрос будет выполнен только после завершения запроса ajax.
Вариант вышеупомянутого, который будет выполняться сразу при первом вызове, прежде чем будет соблюден интервал ожидания / тайм-аута.
(function poll() {
$.ajax({
url: "/server/api/function",
type: "GET",
success: function(data) {
console.log("polling");
},
dataType: "json",
complete: setTimeout(function() {poll()}, 5000),
timeout: 2000
})
})();