您好我有以下代码,检查Rails模型状态
var intervalCall = setInterval(function(){
$.post("getstatus", {id:id});
var finished = "<%= @sentence.finished%>";
//THIS IS CONDITION ONE, IT IS LIKELY TO HAPPEN LATER AND I WANT TO STOP THE SETINTERVAL
if ("<%= @sentence.result %>"){
clearInterval(intervalCall);
state_2();
}
//THIS IS CONDITION TWO, IT IS LIKELY TO HAPPEN EARLIER AND I WANT
// TO KEEP THE SETINTERVAL RUNNING AFTER IT"S MET
else if (String(finished)== "true"){
state_1();
}
},3000);
intervalCall;
组织这种流程的最佳方法是什么?
提前致谢!
答案 0 :(得分:3)
// setInterval/ setTimeout return the timer id
var intervalCall;
function updateStatus (){
// post need a callback to process the data response by server
$.post("getstatus", {id:id}, function ( data ) {
data = $.parseJSON ( data ) // asume you use jQuery and the data is a json string
if ( data.result ){
state_2(); // if you want the result as a arg, do state_2( data.result )
return;
} else {
// no need to use finished flag, when there is a response and no result, call again
// anything when no success resulte you want to do could write here
state_1();
intervalCall = setTimeout ( updateStatus, 3000 );
}
});
},3000);
intervalCall = setTimeout ( updateStatus, 3000 );
一些更新