首页 新闻 会员 周边 捐助

js使用for循环去调用ajax请求后台刷新页面

1
悬赏园豆:10 [已解决问题] 解决于 2017-08-22 09:53

因为后台查询的内容太多,不能及时返回页面,现在需要把页面请求拆分为一个个请求---for循环,然后使用ajax返回数据到页面刷新,但是为什么进入页面是空白的,必须等所有的请求完成才一次性加载数据到页面,而不是请求完成一个加载一个数据。

var taskArray=new Array("01","02","03","04","05","06","07");
for(var i=0;i<7;i++){
   taskParam = taskArray[i];
   $.ajax({
    url:"<%=basePath%>TestServlet?method=query&taskParam="+taskParam,
    type:"post",
    data:{},
    dataType:"json",
    async : false, //默认为true 异步
    error:function(jqXHR, textStatus, errorThrown){

    alert("查询任务出现异常:"+errorThrown);

   },
   success:function(data){
     var message = data.message;

     var spanid = 'span_'+taskParam ;

     document.getElementById(spanid).innerText = message ;

  }}

body是7个span

怎么让for里面,请求返回一次,刷新一个span,而不是等所有请求完成才一起刷新

luoshifu的主页 luoshifu | 初学一级 | 园豆:80
提问于:2017-08-21 10:43
< >
分享
最佳答案
0

肯定要灯七个span都加载完成后才能显示页面了,难道还能先显示页面,然后再一个一个生成span?那就算生成了你页面也显示不出来

收获园豆:10
姚刘乐 | 初学一级 |园豆:70 | 2017-08-21 11:20

var spanid =

var task_div = document.getElementById(spanid);
task_div.style.display = "block";//展示该span

js方法在前面还有个方法先将所有的span隐藏,然后后台逐个返回数据才显示。为什么要等7个span抖加载完才显示呢?

luoshifu | 园豆:80 (初学一级) | 2017-08-22 09:10

怎样当后台返回一个数据,显示一个span,这样让span一个个显示出来(我有想过js动态拼接html,但是因为需要拼的html比较复杂,有<a>标签,里面带很多各种各样的参数,所以不方便这样拼),所以就先先写完7个span,<span id="span_01"></span>这样一定规则写了7个span,然后当ajax返回后,再用统一的方法拼接span的id就行。

luoshifu | 园豆:80 (初学一级) | 2017-08-22 09:34

呃,原来其实已经实现了,只是本地数据太少,看不出效果,加了线程睡眠,看到效果了。

luoshifu | 园豆:80 (初学一级) | 2017-08-22 09:52
其他回答(3)
0

   async : false, //默认为true 异步 

Tom.汤 | 园豆:3060 (老鸟四级) | 2017-08-21 11:05

什么意思呢?是设置async : false, ???我这个已经设置了。

支持(0) 反对(0) luoshifu | 园豆:80 (初学一级) | 2017-08-21 11:08
0

1L都已经回答你了 把async : false去掉就可以了 默认是true的 

Sugar★ | 园豆:203 (菜鸟二级) | 2017-08-21 21:47

不行,试过了

支持(0) 反对(0) luoshifu | 园豆:80 (初学一级) | 2017-08-22 09:27
0
 1 var taskArray=new Array("01","02","03","04","05","06","07");
 2 for(var i=0;i<7;i++){
 3    taskParam = taskArray[i];
 4    $.ajax({
 5     url:"<%=basePath%>TestServlet?method=query&taskParam="+taskParam, 
 6     type:"post", 
 7     data:{}, 
 8     dataType:"json",
 9     async : false, //默认为true 异步 
10     error:function(jqXHR, textStatus, errorThrown){ 
11         alert("查询任务出现异常:"+errorThrown);
12        }, 
13    success:function(data){
14      var message = data.message;
15      var spanid = 'span_'+taskParam ;
16      document.getElementById(spanid).innerText = message ;
17    }
18  });
19 }
//代码没闭合,还是没有贴出来完。
【行止坐卧丶皆修行】 | 园豆:204 (菜鸟二级) | 2017-08-24 17:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册