以下の関数を使用して、JSON ファイルのステータスを確認します。ファイルが変更されたかどうかを確認するために、(setTimeout を使用して) 8 秒ごとに実行されます。JSON のステータスが「成功」になると、関数を呼び出し続ける必要がなくなります。誰かがこれを行う方法を教えてもらえますか? clearTimeout の使用が関係していると思われますが、これを実装する方法がわかりません。
乾杯!
$(function() {
var checkBookStatus = function() {
var job_id = "#{@job.job_id}";
var msg = $('.msg');
var msgBuilding = $('#msg-building');
var msgQueuing = $('#msg-in-queue');
var msgSuccessful = $('#msg-successful-build');
var msgError = $('#msg-error');
$.ajax({
url: '/jobs/'+job_id+'/status.json',
datatype: 'JSON',
success:function(data){
if (data.status == "failure") {
msg.hide();
msgError.show();
}
else if (data.status == "#{Job.queue}") {
msg.hide();
msgQueuing.show();
}
else if (data.status == "#{Job.building}") {
msg.hide();
msgBuilding.show();
}
else if (data.status == "#{Job.failure}") {
msg.hide();
msgError.show();
}
else if (data.status == "#{Job.success}") {
msg.hide();
msgSuccessful.show();
}
},
}).always(function () {
setTimeout(checkBookStatus, 8000);
});
};
checkBookStatus();
});