方案一:
for(var i=0,len=tableEID.length; i<len; i++){
tableID=['tableE_tbGroup_0','tableE_tbGroup_1']
var prefixIndex=tableEID[0].lastIndexOf('_');
var prefix=tableEID[0].slice(0,prefixIndex);
$.post("index.php/"+_name+"/"+prefix+"_read?flag="+i,formArr,function(data){ console.log(i);$("#"+tableEID[i]).datagrid('loadData',data);
});
}
方案二:
var prefixIndex=tableEID[0].lastIndexOf('_'),
prefix=tableEID[0].slice(0,prefixIndex),
i=0,
len=tableEID.length,
repeatPost=function(){
$.post("index.php/"+_name+"/"+prefix+"_read?flag="+i,formArr,function(data){
$("#"+tableEID[i]).datagrid('loadData',data);
i++;
if(i<len){
repeatPost();
}
});
};
repeatPost();
方案一的问题在于当一次post请求时,结果:
方案二结果:
方案一是有问题的,当一次post请求成功时,回调函数的执行时间不会去影响下次post的执行,所以必须采用方案二,才能保持多次post的顺序执行,一次回调函数执行完之后才执行下一个。