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);
});