ajax显示100条数据校验结果不能异步显示;

chinank 2012-02-20 04:53:59
下面是调用代码,循环100次调用ajax函数;

function asdf(){
var i;
i=1;
for(i=1;i<=100;i++){
show("jq1.asp?text="+i); }
}


===========
ajax函数:
function createAjax(){
var http;
if (window.ActiveXObject){
http=new ActiveXObject("Microsoft.XMLHTTP") ? new ActiveXObject("Microsoft.XMLHTTP") : new ActiveXObject("Msxml2.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
http=new XMLHttpRequest();
}


return http;
}
var ajax=createAjax();

function show(vv){//ajax乱码是因为在传递中文的时候没有进行编码,escape()是进行编码。
ajax.open("GET",vv+"&num="+Math.random(),true);
ajax.send(null);
ajax.onreadystatechange=getmessage;
}
function getmessage(){
var html;
if (ajax.readyState==4){
if (ajax.status==200){
html=ajax.responseText;
document.getElementById("yz").innerHTML=document.getElementById("yz").innerHTML+"<Br>"+html;

}else alert('status is:'+ajax.status);

}else{
//document.getElementById("yz").innerHTML=document.getElementById("yz").innerHTML+"<BR>"+ajax.readyState;
}
//alert(html);
}



===============================================
我想要的结果是 在页面中一条一条的输出返回值,而现在的效果是 只输出最后一次的返回值;
网上查了说是循环太快,没来得及接收返回值就跳到下一条了;不知道jq有没有类似的效果;

这功能貌似不太难,因为网站中经常看到有逐条输出信息的,只是我不太懂这个;谢谢!

...全文
148 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinank 2012-02-22
  • 打赏
  • 举报
回复
明白了,放到 获取到200状态 里面执行,呵呵。谢谢。
libo_sina 2012-02-22
  • 打赏
  • 举报
回复
应为ajax异步调用,使用递归呢就是为了保证每个ajax的请求都是有先后顺序的,也就是这个请求执行完毕了再去执行下一条请求,说以在递归时是在ajax的回调函数中执行完毕了js的相关操作之后再去执行下一次的ajax调用!
不知道我这样讲你明白不了!
chinank 2012-02-20
  • 打赏
  • 举报
回复

function show(vv){

ajax.open("GET","jq1.asp?text="+vv+"&num="+Math.random(),true);
ajax.send(null);
ajax.onreadystatechange=getmessage;
if(vv> 1){
// alert(vv);//加上这个alert就正常显示;
window.setInterval( show(vv-1),500);

}
}



这样算递归吧?也延时了,还是只输出一个结果。。。。。。
chinank 2012-02-20
  • 打赏
  • 举报
回复
递归的语法如何写?
libo_sina 2012-02-20
  • 打赏
  • 举报
回复
以前逐条用ajax读取数据显示,直接用循环有问题!我是通过递归调用解决的!你可以思考下!
Acesidonu 2012-02-20
  • 打赏
  • 举报
回复
使用setInterval间隔时间调用

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧