• 关于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,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。


  • 相关阅读:
    成绩单问题
    详细介绍Linux shell脚本基础学习(一)
    千万级并发连接的秘密
    前段面试题
    cat 命令
    面试的一个网页设计师
    准备准备
    ls显示文件
    [HDU 1010 ]Tempter of the Bone
    Linux下的绘图(流程图、UML、mindmap)工具
  • 原文地址:https://www.cnblogs.com/dss1025/p/9283073.html
Copyright © 2020-2023  润新知