我使用下面的函數來檢查JSON文件的狀態。它每8秒運行一次(使用setTimeout)來檢查文件是否已更改。一旦JSON的狀態變成'成功',我不再想繼續調用這個函數。有人可以告訴我如何做到這一點?我懷疑它涉及使用clearTimeout,但我不確定如何實現這一點。如何停止運行setTimeout函數?
乾杯!
$(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();
});
謝謝你李:) – swisstony