读书人

jquery ajax 调用,该怎么解决

发布时间: 2012-08-22 09:50:35 作者: rapoo

jquery ajax 调用
function run() {
$.ajax({
type: "get",
url: "/Authority/Import",
cache: false,
success: function (msg) {
//获取要处理的数据总数
total = parseInt(msg);

//异步插入数据
$.ajax({
type: "get",
url: "/Authority/Import3", //在后台sleep一分钟
cache: false,
success: function () { alert("/Authority/Import3"); }
});

//定时调用,返回插入条数
setInterval(test, 100);
}
});
}

function test() {
$.ajax({
type: "get",
url: "/Authority/ImportInfo2",
success: function (msg) { alert(msg);}
});
}
问题:
“异步插入数据”与“定时调用,返回插入条数”两个代码块应该是异步执行,
但是现在“定时调用,返回插入条数”要等“异步插入数据”执行完成后才执行,求原因和解决办法。

[解决办法]
虽然是异步执行,但是你放的位置不对,你现在的位置是,等
插入数据成功返回结果后才执行
//定时调用,返回插入条数
setInterval(test, 100);
这个方法放在外面

//异步插入数据
$.ajax({
type: "get",
url: "/Authority/Import3", //在后台sleep一分钟
cache: false,
success: function () { alert("/Authority/Import3"); }
});

}
});
}

//定时调用,返回插入条数
setInterval(test, 100);

[解决办法]
你把定时器放到了第一个AJAX回调函数里执行了,当然变成同步了

JScript code
 $(document).ready(function() {            setInterval(test, 100);            setTimeout(run, 100);        }); 

读书人网 >asp.net

热点推荐