先来说下Ajax的同步问题
async(Boolean)
(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
例子:
$.ajax({
type:'get',
url:'XXXXXXXX.php',
//async:false,
success: function(data){
alert(1);
}
})
alert(2);
异步下,先弹2,再弹1;同步下,先弹1,再弹2.
但是在跨域的情况下,async:false,是不支持的.
总结:使用ajax时,如果不考虑跨网域,可是设置同步或异步,如果是跨网域,不管是否设置同步或异步都会以异步方式访问,异步访问时:代码执行不会等待,所以会导致全局变量在ajax的回调函数中给全局变量赋值无效。