加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关于ajax中async: false的作用

发布时间:2020-12-16 03:03:31 所属栏目:百科 来源:网络整理
导读: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: {keyw
 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,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读