Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> ASP/ASP.NET  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1702025
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

XMLHTTP异步获取返回值的代码(AJAX)

作者:cg1  摘自:access911.net  :cg1  更新日期:2006-3-8  浏览人次:

 

客户端文件,请修改文件名为:test_2.htm
<html>  
<body>  
xmlhttp异步的例子:  
URL:  <input  name=a  type=textbox value="test_s.asp"  style="width:600px"  >  
<input  onclick=  "getXML()"  type=  "button"  value=  "得到源代码">  
<input  name=geti  type=textbox value="10000">  
<input  onclick=  "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 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

 

 
相关文章
     没有手动相关文章
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利