关于ajax中async: false的作用

 1 function checkMobile(){
 2      //自动提示
 3     var fdMobile=document.getElementsByName("fdMobile")[0].value;
 4     var flag = false;
 5     var url = '<c:url value="xxx.do?method=getFdMoblie"/>';
 6     $.ajax({
 7         type: 'get',
 8         url: url,
 9         data: {keyword: fdMobile},
10         dataType: "json",
11         async: false,//若无此,flag=false,同步请求,在后台无返回前,不执行return操作
12         success: function (text) {
13             
14             if(text['key']==1){
16                 layer.tips('手机号有误,已存在!!', '#_xform_fdMobile', {
17                     tips: [1, '#E65600'],
18                     time: 3000
19                 });
20                 flag=true;
21                 
22             }
23              
24         }
25        
26     });
27     
28     return flag;
29     
30     
31 }

调用后台方法执行,返回ajax的回调函数,执行if验证,此时flag为true,若无11行代码,则teturn时flag仍为flase
为解决这一问题,加入第11行代码后,return为true
对async: false理解
async. 默认是true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程即先会执行return flag=false再执行success。
若要将其设置为false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。


 

转载于:https://www.cnblogs.com/dss1025/p/9283073.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值