ajax默认是异步请求 async:true
例如默认异步:
function(){
$.ajax({
url: "路径1",
type: 'post',
data: { },
success: function () {
alert(1)
}
});
alert(2)
}
按照js从上往下的思路来理解应该是先弹1在弹2,但是当我们用到ajax时,默认是异步执行,所以ajax请求的过程中在没有返回数据时会继续往下执行后面js代码部分,所以结果是先弹2在弹1;
这时我们应该将ajax请求设置为同步请求async:false,
function(){
$.ajax({
url: "路径1",
type: 'post',
data: { },
async:false, /*同步请求*/
success: function () {
alert(1)
}
});
alert(2)
}
那么就会按照从上往下执行,先执行ajax请求并弹框1,在接着执行后面的js部分弹框2。