问候,
我试图在jQuery中重复一个JSON请求来检查视频编码作业的状态,直到它完成.将显示"处理"直到作业完成,此时将显示视频.
一个循环,每隔x秒检查"状态"是否等于"完成",是否是最佳解决方案?如果是这样,当作业完成后,我将如何摆脱这种循环?
作业正在进行时的JSON响应只不过是"处理",当它完成时它将包含诸如作业ID,宽度和高度之类的内容.
任何帮助将不胜感激,谢谢!
UPDATE
感谢Felix,这是我的最终解决方案:
var checkStatus = function() {
$.getJSON('json-data.php', function(data) {
if (data.status != 'finished') {
setTimeout(checkStatus, 2000);
} else {
//Sample code to run when finished
$("#statusText").text("Job Complete");
$("#dimensions").text(data.width + 'x' + data.height);
}
});
};
checkStatus();
Run Code Online (Sandbox Code Playgroud)
Fel*_*ing 12
由于Ajax请求是异步的,因此循环不起作用.
一种方法是进行相同类型的递归调用,并从成功回调中再次触发Ajax函数(可能在一些超时后),如果条件不满足.
像(伪代码)的东西:
function check_condition() {
$.getJSON(<url>, function(result) {
if(!result.finished) {
setTimeout(check_condition, 2000);
}
// do something else
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6710 次 |
| 最近记录: |