jquey中ajax请求的异步和同步设置

需要实现的效果:点击按钮后,分别调用三个接口更新数据,数据更新完之后刷新当前页面。

(实现方式未必是最好的,此处只关注ajax的异步设置)

一般情况下使用 $.ajax() 是异步处理的,三个ajax请求分别发送后,可以在未有response返回的情况下继续执行下面reload()页面的代码

 

设置 asyncfalse 则可以让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 });

 

posted @ 2014-06-01 17:40  jolin_blog  阅读(280)  评论(0编辑  收藏  举报