正在加载......
仅一羊,已亡,补之已晚;仅一世,而立,不奋而憾!

原创Jquery ajax 同步异步的使用疑惑

        Jquery ajax 中提交数据可以用同步与异步
1、同步与异步之间究竟有什么不同呢?、
2、在什么情况下使用呢?
 
同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事
异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕
 
一、我的理解:                                                                   
1、一心一意:当前只能做一件事,其他事情必须等当前的事情完成,才能继续后面的事情。
2、三心二意:同时可以做多件事情:左手按着空格键,右手可以不断的击打鼠标,眼睛还要同时看着屏幕,很辛苦。
 
二、请看下面这段脚本:                                                             
function ValidateClick()
            {
              var areaNo=$("#<%=drpList.ClientID %>").val();         
                if(areaNo) { alert("请选择"); return false; } 
                $.ajax({
                    cache:"False",
                    type:"POST",
                     (A)//async: false, (A)
                    url:"Validate.ashx",
                    data:$("#form1").serialize(),
                    success:function(o)
                    {    
                        if(o=="ERROR")   {  alert("输入错误!");   return false;}             
                        else if(o=="OK")
                        { alert("正确!");return true; }                   
                        else
                        { alert("其他错误!");   return false;}
                    },
                    error:function(xhr, ajaxOptions, thrownError)
                    {     alert("网络异常,稍后重试!");  return false; }
                });
               // (B)  】 //alert("这里");return true;
            }               
 
在(A)处:默认未true,表示使用异步进行传输,
 
当async: true时:我们把数据用POST提交数据到url页面后,会同时执行【(B)  】处的方法或者 函数等,不管(A)处是否已经返回结果,(B)已经执行了,当(A)中返回结果时,就根据指定的if来弹出提示,
 
当async: false时:这个时候就必须等待(A)处返回结果,再执行if判断语句,判断完成之后,在接着执行(B)处的函数
 
三、举个例子                                                                  
 
【这里我们要除掉(B)出的代码】
 
      我们在页面上有一个服务器的button按钮,
要求:根据p

发表评论

昵称 (必填)

邮箱 (必填且保护)

网址 (选填:http://www.baidu.com)

      

      

本站工具

管理