jquery ajax嵌套循环,将数据显示到页面,但是循环次数对,每次都显示同一条数据, 代码:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery ajax嵌套循环,将数据显示到页面,但是循环次数对,每次都显示同一条数据, 代码:相关的知识,希望对你有一定的参考价值。
$.ajax(
async : false,
url:root+"/recordcode/recordcode/domainList",
success:function(data)
var json=eval("("+data+")");//转化为json格式。
for(i =0;i<json.length;i++)
//var jsonobj = json[i];
var domainid=json[i].domainid;
var domainname=json[i].domainname;
var recordcode=json[i].recordcode;
var username=json[i].username;
//alert(domainid+" "+domainname+" "+recordcode+" "+username);
var temp="true";
$.ajax(
url:root+"/recordcode/recordcode/checkRecordCode",
data:'domainid':domainid,'domainname':domainname,'recordcode':recordcode,'username':username,
cache:false,
success:function(data)
if(data=="false")
temp=data;
if(data!="false" && data!="same")
_addTd="<tr id='tr"+domainid+"' class=\"out\" onmouseover=\"this.className='over'\" onmouseout=\"this.className='out'\"><td>"
+username+"</td><td>"
+domainname+"</td><td>"
+recordcode+"</td><td>"
+data+"</td><td>"
+" "+"</td><td></td>"
+"</tr>"
$(".tab_title").after(_addTd);
)结果如图,谁能帮忙解决下,分数不是问题
第一个ajax success里面的改成这样应该就可以了
var json=eval("("+data+")");//转化为json格式。
$.each(json,function(i,data)
//采用$.each遍历,因为使用的是function回调,变量data在function内闭包
var domainid=data.domainid;
var domainname=data.domainname;
var recordcode=data.recordcode;
var username=data.username;
var temp="true";
$.ajax(
url:root+"/recordcode/recordcode/checkRecordCode",
data:'domainid':domainid,'domainname':domainname,'recordcode':recordcode,'username':username,
cache:false,
success:function(data)
if(data=="false")
temp=data;
if(data!="false" && data!="same")
_addTd="<tr id='tr"+domainid+"' class=\"out\" onmouseover=\"this.className='over'\" onmouseout=\"this.className='out'\"><td>"
+username+"</td><td>"
+domainname+"</td><td>"
+recordcode+"</td><td>"
+data+"</td><td>"
+" "+"</td><td></td>"
+"</tr>"
$(".tab_title").after(_addTd);
);
)
整体上就是这个思路,应该可以解决问题了。
如果还有问题请追问,或者加我的hi咨询
PS:确实如tz6060996所说,在循环里面再去ajax确实会对服务器造成很大压力。建议优化一下。追问
没办法同事采纳两个答案啊?很感谢你的回答……
参考技术A 1、用firefox 加firebug插件查看一下每次循环的data:'domainid':domainid,'domainname':domainname,'recordcode':recordcode,'username':username,是不是不同;如果不同
2、看一下服务端返回值是否相同,如果相同则问题出在服务器端。追问
数据是不同的,如果调试,显示的数据是正常的,但是不调试直接执行就是这种重复显示一条数据,不知道为什么
追答估计是异步嵌套带来的问题,你这段代码不太合理,循环异步给服务器发送请求,不仅给网络和服务器端造成很大压力,而且容易导致返回的数据因异步的原因出现顺序混乱。
建议:在客户端将'domainid''domainname''recordcode''username'组成JSON数组,然后一次性发送至服务器端处理,服务器同样返回一个Json数组交客户端一次性显示出来。
还有就是:你这段代码中第一个$.ajax请求的数据,并没有在客户端看到应用,而是稍作处理又送回服务器端,这个来回似乎没有什么实际意义,还不如直接在服务端将最终结果处理好后再发至客户端。
以上是关于jquery ajax嵌套循环,将数据显示到页面,但是循环次数对,每次都显示同一条数据, 代码:的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AJAX (jquery) 将嵌套的对象数组传递和接收到 c# WebMethod 中?