Предполагая, что у вас есть служба, расположенная по адресу /service-status.php, которая проверила состояние задания и вернула строку, вы можете сделать что-то подобное в некотором интервале.
var intervalId;
intervalId = setInterval( function() {
$.ajax({
type: "POST",
url: "/service-status.php",
data: "jobid=" + id,
success: function(msg){
if (msg === 'Finished') {
clearInterval( intervalId );
}
alert( "Status: " + msg );
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("He's dead Jim"):
clearInterval( intervalId );
}
})
}, 500);
Это будет опрашивать ваш сервис каждые 500 мс. Также предполагается, что вы вернете «Готово», когда закончите. Отрегулируйте соответственно. Я мог бы также поставить счетчик там, чтобы очистить интервал на всякий случай, чтобы вы не использовали DDOS для своего собственного сервера.