jsは、タスクが完了するまでバックグラウンドからタスクデータを再帰的に取得することを実現する
タスクリストtaskListがある場合、このリストからタスクidがポップアップされ、バックグラウンドにデータが取得され、すでに完了している場合は処理が完了していない場合は、完了するまで再びバックグラウンドにデータが取得されます.
実装方法は次のとおりです.
実装方法は次のとおりです.
function getTaskData(task,taskList,recode){
console.log(' task-'+recode+':'+task)
$.ajax({
'url':'/jgwork/task_get',
'type':'POST',
'async':false,
'dataType':'json',
'data':{'type':'getTaskDataFromRedis','task':task},
'success':function(result)
{
if (result.code){
if(result.isComplete){ //
$($('#taskprogress div.bs-wizard-step')[recode-1]).removeClass('disabled').addClass('complete')
//do something here
setTimeout(function(){generateTask(taskList,recode)},1000) //
}
else { //
setTimeout(function(){getTaskData(task,taskList,recode)},300) //
}
}else {
showError(result.msg)
}
}
})
}
//
function generateTask(taskList,recode=0){
if (taskList.length>0) {
task = taskList.shift()
getTaskData(task,taskList,recode+1)
}else {
$($('#taskprogress div.bs-wizard-step')[recode]).removeClass('disabled').addClass('complete')
}
}