如果不添加async:false 将先执行B() 最后执行$ajax
AJAX中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式
async的值不同分为同步(async = false)和异步(async = true)两种执行方式
异步:在异步模式下,当我们使用AJAX发送完请求后,可能还有代码需要执行。
这个时候可能由于种种原因导致服务器还没有响应我们的请求,但是因为我们采用了异步执行方式,
所有包含AJAX请求代码的函数中的剩余代码将继续执行。如果我们是将请求结果交由另外一个JS函数去
处理的,那么,这个时候就好比两条线程同时执行一样。
同步:在同步模式下,当我们使用AJAX发送完请求后,后续还有代码需要执行,我们同样将服务器响应交
由另一个JS函数去处理,但是这时的代码执行情况是:在服务器没有响应或者处理响应结果的JS函数还
没有处理完成return时,包含请求代码的函数的剩余代码是不能够执行的。就好比单线程一样,请求发
出后就进入阻塞状态,知道接触阻塞余下的代码才会继续执行。
funciton A(){
var m;
$.ajax({
url: "index.html",//异步请求路径
async:false,//默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
success: function(){//回调函数
return m;
}});
B();
}