需要实现的效果:点击按钮后,分别调用三个接口更新数据,数据更新完之后刷新当前页面。
(实现方式未必是最好的,此处只关注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 });
时间: 2024-08-13 15:17:18