JQuery提供的$.ajax请求能够异步的向后台发送数据,并得到反馈信息,再在前台做相应的局部更新操作,效果还是挺不错的。同时因为是异步的交互,所以减少了等待的时间,给予用户的体验也是挺好的。可是也正是因为这个异步的交互,带来了一些问题。这个问题也很好理解的,因为web前端执行的速度往往快于后台,所以在异步请求后台的时候,web前端是继续执行的,所以当需要后台的反馈才能继续执行web端的代码时,这个异步的操作就不恰当。比如如下代码:
var flag = false;
var queryString = 'appId='+appId
$.ajax({
//异步选项
async:false,
type:"post",
dataType:"json",
url:'/back/common/common-getInfo.do',
data:queryString,
success:function(result){
if(result){
flag = true;
}
}
})
if(flag){
//do something;
}
如果没有async选项,程序就会有问题的。