当前位置: 代码迷 >> JavaScript >> ajax 同步解决思路
  详细解决方案

ajax 同步解决思路

热度:324   发布时间:2013-03-06 16:20:31.0
ajax 同步
ajax 同步

ajax已经采用了同步模式,接受到数据后才能继续往下执行
function aaa() {
$.ajax(
{
url:"includes/checkusername.php",
data:"username="+$("input[name=username]").val(),
async:false,
success:function(result){
        
alert(1);
        return false;


}
})};


aaa();


alert("bbb");  

**************************************************

可是alert("bbb");还是执行了
函数里面明明设置了return false啊

然后我测试了一下时间 发现 aaa()里面的alert()响应的时间和 下面代码执行的alert("bbb")是一样 

我用的是 getTime();
ajax

------解决方案--------------------
要想用这个同步就只能把下边的执行代码放到调用Ajax方法以外的位置,再Ajax回调里调用其他方法

看LZ的Ajax和其他方法在同一方法里,肯定达不到同步效果
------解决方案--------------------
那个return false;有什么意义?
------解决方案--------------------
function aaa() {
$.ajax(
{
url:"includes/checkusername.php",
data:"username="+$("input[name=username]").val(),
async:false,
success:function(result){
        
alert(1);
  //      return false;

alert(bbb);
}
})};

楼主,把alert(bbb);放到成功方法里面,当数据返回成功后再调用alert(bbb),即可


------解决方案--------------------
你的代码没有问题,执行aaa()的时候同步请求,后台没问题的话,肯定是先alert(1),再alert('bbb'); 页面效果一定是alert('bbb')的警告框在外面(也就是后弹出的).  止于你说的return false; 对你的代码执行没有影响,这个return false,只是success的返回值,没有被使用过,对ajax调用也没有影响.  你的那个getTime() 一样的话只是值一样,顺序其实不一样,可能是精确问题吧,java常见这种情况
  相关解决方案