方案一: 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,function(data){ $("#"+tableEID[i]).datagrid('loadData',data); i++; if(i<len){ repeatPost(); } }); }; repeatPost();
方案一的问题在于当一次post请求时,结果:
方案二结果:
方案一是有问题的,当一次post请求成功时,回调函数的执行时间不会去影响下次post的执行,所以必须采用方案二,才能保持多次post的顺序执行,一次回调函数执行完之后才执行下一个。
原文链接:https://www.f2er.com/ajax/166487.html