下面是调用代码,循环100次调用ajax函数;
- Java code
function asdf(){ var i; i=1; for(i=1;i<=100;i++){ show("jq1.asp?text="+i); } }
===========
ajax函数:
- JScript code
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有没有类似的效果;
这功能貌似不太难,因为网站中经常看到有逐条输出信息的,只是我不太懂这个;谢谢!
------解决方案--------------------
使用setInterval间隔时间调用
------解决方案--------------------
以前逐条用ajax读取数据显示,直接用循环有问题!我是通过递归调用解决的!你可以思考下!
------解决方案--------------------
应为ajax异步调用,使用递归呢就是为了保证每个ajax的请求都是有先后顺序的,也就是这个请求执行完毕了再去执行下一条请求,说以在递归时是在ajax的回调函数中执行完毕了js的相关操作之后再去执行下一次的ajax调用!
不知道我这样讲你明白不了!