jquey中ajax请求的异步和同步设置
需要实现的效果:点击按钮后,分别调用三个接口更新数据,数据更新完之后刷新当前页面。
(实现方式未必是最好的,此处只关注ajax的异步设置)
一般情况下使用 $.ajax() 是异步处理的,三个ajax请求分别发送后,可以在未有response返回的情况下继续执行下面reload()页面的代码
设置 async 为 false 则可以让ajax请求变成同步执行,就是执行完第一个请求后再执行第二请求。
1 function initData(nick, url, accessToken) { 2 $.ajax({ 3 async: false,//把异步请求改为同步 4 url: url, 5 type: "GET", 6 dataType: 'json', 7 data: {nick: nick, is_refresh: true, access_token: accessToken}, 8 complete: function (resp) { 9 return true; 10 } 11 }); 12 } 13 14 $(document).ready(function () { 15 $(".refresh").click(function (event) { 16 var nick = "test"; 17 $.get("http://www.test.com?r=ruleLog/findsession"", {nick: nick}, function (resp) { 18 if (resp.flag) { 19 var accessToken = resp.data; 20 var tmp_url = "http://www.test.com?r=init/tem_action"; 21 var actions = ['campaign', 'adgroup', 'creative'];
23 for (var i = 0; i < actions.length; i >= 0) { 24 var url = tmp_url.replace("tmp_action", actions[i]); 25 initData(nick, url, accessToken); 26 i++; 27 } 28 location.reload(); 29 } else { 30 alert(resp.data); 31 } 32 }, 'json'); 33 }); 34 });