XMLHTTP异步获取返回值的代码(AJAX)
<script language="javascript" type="text/javascript"> function addtitle(){ var straddtitle = "XMLHTTP异步获取返回值的代码(AJAX)"; if (straddtitle.length!==0){ document.title=document.title + "《" + straddtitle + "》;专题号:72FAB11E1BDCEFF3"; } } </script>
作者:cg1 摘自:access911.net 编辑:cg1 更新日期:2006-3-8 浏览人次: <script language="javascript" src="/rewrite.asp?mode=clickno&id=72FAB11E1BDCEFF3" type="text/javascript"></script> 11
专题地址: http://access911.net/?kbid;72FAB11E1BDCEFF3 |
简述:
阅读前需掌握:
难度等级: <script language="javascript" src="/rewrite.asp?mode=writelevel&l=10" type="text/javascript"></script>
|
客户端文件,请修改文件名为:test_2.htm
<html> <body> xmlhttp异步的例子: URL: <input name=a type=textbox value="test_s.asp" style="width:600px" > <input οnclick= "getXML()" type= "button" value= "得到源代码"> <input name=geti type=textbox value="10000"> <input οnclick= "if(xh && xh.responseText) {alert(xh.responseText);oDiv.innerHTML=xh.responseText} " type= "button" value= "显示源代码 " > <div id=m style="display:none"></div> <script language=javascript> var oDiv var xh function getXML() { oDiv = document.all.m; oDiv.innerHTML = "正在装载栏目数据,请稍侯....... "; oDiv.style.display = ""; xh = new ActiveXObject("Microsoft.XMLHTTP") xh.onreadystatechange = getReady; xh.open("POST",a.value + "?geti=" + geti.value,true); //alert("geti=" + geti.value); xh.send(); } function getReady() { if(xh.readyState==4) { if(xh.status==200) { oDiv.innerHTML = xh.responseText; oDiv.innerHTML = oDiv.innerHTML + "load over" } else { oDiv.innerHTML = "抱歉,装载数据失败。原因: " + xh.statusText // 我测试了,一旦运行时间过长会出现:抱歉,装载数据失败。原因: Internal Server Error // 但是这个时间是多少呢?在哪里设定呢? } } else { oDiv.innerHTML = "已经有数据了,不过readyState检测未通过<br>"; switch (xh.readyState){ case 0: oDiv.innerHTML = oDiv.innerHTML + "0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)"; break; case 1: oDiv.innerHTML = oDiv.innerHTML + "1 (初始化) 对象已建立,尚未调用send方法" break; case 2: oDiv.innerHTML = oDiv.innerHTML + "2 (发送数据) send方法已调用,但是当前的状态及http头未知" break; case 3: oDiv.innerHTML = oDiv.innerHTML + "3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误, " break; case 4: oDiv.innerHTML = oDiv.innerHTML + "4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据" break; default: oDiv.innerHTML = oDiv.innerHTML + xh.readyState + "未知状态" break; } oDiv.innerHTML = oDiv.innerHTML + "。请等待" } } </script> </body></html> | 服务器端文件,请修改文件名为:test_s.asp
<% dim i dim r dim t dim lngGetI lngGetI=request.querystring("geti") on error resume next lngGetI=clng(lngGetI) if err<>0 then response.write "GetError: not isnumber()" response.end() end if if lngGetI<0 or lngGetI>500000 then lngGetI=10000 end if response.write "Run Repeat At:" & lngGetI & "<br>" t=timer for i=1 to lngGetI r = r & i if i mod 20 = 0 then r= r & "a<br>" end if next response.write "run timer:" & cdbl(timer()-t) & "<br>" response.write r %> | access911.net 原创文章,作者本人对文章保留一切权利。 如需转载必须征得作者同意并注明本站链接 | |
适用环境: IIS 6.0
IIS 5.0
Internet Explorer 6.0
|