致力于技术进步

专注于编程艺术

博客园 首页 新随笔 联系 订阅 管理
        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)
                    http://m28.mail.qq.com/cgi-bin/read_note?noteid=_85&opr=del&encodetype=js&sid=y04qoaAEQwqFbXsw&t=note_edit_show&viewmode=&s=&from=&noprevnext=1&catid=1#",
                    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
posted on 2011-07-25 11:00  stephen&amp;#183;周  阅读(150)  评论(0)    收藏  举报