var cc=false;
var bb=false;
$('#start').click(function(){
if(bb==true){
//bb等于true执行后台方法
query();
}
for(var i=0;i<10;i++){
allCheck(i);//在这里就循环完了怎么能使他同步?
}
});
function allCheck(i){
if(cc==false){
$.ajax({
async:false,
url : "https://www.1688.com/index.jsonp?page="+i+"",
type : "get",
dataType : "jsonp",
success : function (f) {
f.rgv587_flag != undefined ? showLayerTips(f.url): showBestCategory(i,f);//
}
//爬网页结束
});
}
}
//获取成功执行
function showBestCategory(i,f){
if(f!=null){
bb=true;
}else{
bb=false;
}
}
//弹出错误页面
function showLayerTips(url){
cc =true;
}
//执行后台方法
function query(){
publicload(getRootPath() + "/searchRank","pageList","");
}
$('#start').click(function(){
if(bb==true){
//bb等于true执行后台方法
query(); //you回调函数的话,使用回调函数,没有的话可以设置同步方法 , 用定时器轮询是否函数执行成功,再继续执行
}
for(var i=0;i<10;i++){
allCheck(i);//在这里就循环完了怎么能使他同步?
}
});
能不能 给我个简单的例子
本来请求就是个异步的过程,除非你让后台写个callback回调函数 执行你的回调方法类似ajax success方法 在回调方法里调用循环。
首先,你的query方法是不是向后台发送请求了呢?如果是的话,你这段代码就有问题,只能通过回调在query返回后再同步处理了。
如果你的query就是普通方法,你这段代码就是顺序执行的。