您的位置:首页 > Web前端 > JQuery

jquery ajax请求同步与异步问题

2015-05-12 21:08 260 查看
默认发送ajax请求都是异动,以下设置为同步(async:false),此时是要等到ajax的回调函数success执行完毕后,才执行这个ajax之后的代码(即alert(333);return;).如此时需要根据data==1而结束整个调用这个ajax的方法,就不能在success判断return了,此时的return仅仅只是

结束这个ajax请求而不是调用这个ajax的方法,后面代码(即alert(333);return;)还是会执行下去。若想根据ajax的data判断是否结束方法,

则需要在ajax外面判断,先把ajax请求后data赋值给外部变量message,再用message==1判断是否结束此方法。

PS:一定要设置成同步,否则message有可能为undefined就无法判断了

(同步一定会等到回调函数success执行完后再执行ajax后续代码,异步的不要说回调函数success执行完,就是有可能ajax请求都没有发在它之后代码就执行了!)

var
message;

$.ajax({

             type: "GET",

             url: "test.json",

     async:false,

             data: {username:$("#username").val(), content:$("#content").val()},

             dataType: "json",

             success: function(data){

                         //if(data==1)
return;

message = data;

                      }

         });

if(message==1) return;

alert(333);

return;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js jquery