首页 新闻 搜索 专区 学院

请教JS循环中执行AJAX返回数据问题

0
悬赏园豆:5 [待解决问题]

我要实现的功能如下:   

     在一段JS代码中有个for循环,然后for中是调用封装好的AJAX方法。然后我要在for循环中每执行一次AJAX,就将返回的数据显示到页面上。这样保证下面页面显示的内容是动态刷新的。for循环中的提供这次请求的参数,这个问题有人提了,但是和我的需求有一点不一样,我的参数是放在数组中的,需要循环取,求高人指点

ajax是异步的,你要的效果可以用setTimeOut实现,DEMO: 
function GetFeed() { 
$.ajax({ 
url: '../WebService/Feed.asmx/GetFeed', 
data: "{\"count\":10}", 
type: 'post', 
dataType: 'json', 
contentType: 'application/json; charset=utf-8', 
cache: false, 
success: function (data) { 
//显示在页面 
ShowFeed(); 
}, 
error: function (xhr) { 

}); 


function ShowFeed() { 
forrun = setInterval("GetFeed()", 5000); 
}

小孤狸的主页 小孤狸 | 初学一级 | 园豆:7
提问于:2012-05-22 11:20
< >
分享
所有回答(3)
0

ajax是异步的,保持页面动态刷新建议定时向服务器端发送一个请求来做,放在for循环中应该是不行的

artwl | 园豆:16526 (专家六级) | 2012-05-22 11:26
0

楼上正解,ajax是异步的,你放在for循环中我感觉也是行不通的,上次我也想实现,可是没有达到预期的效果,百度了很久也没有好的解决办法。而且for执行的速度远远小于你请求返回的速度。所以很多时候你根本拿不到返回的数据,for里面的ajax已经发出新的请求了。但是 ,在我测试的时候,当你在for循环体中加入alert的话,你每次都可以拿到返回的结果,因为alter阻断了for的执行,以至于ajax有足够的时间去执行并且返回结果。

叶小党 | 园豆:481 (菜鸟二级) | 2012-05-22 11:31
0

不需要放在for循环中,上面的代码就是一种循环。

参数可以通过全局变量传递。

dudu | 园豆:39014 (高人七级) | 2012-05-22 11:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册