XMLHTTP异步获取返回值的代码超时测试(AJAX)_AJAX教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:理解才能创新 轻松打造自己的AJAX框架
本文实现的只是一个最基本的AJAX框架,虽然AJAX并不是什么新技术,但是做为一个框架并不是一篇文章就能说明白的。写这篇文章的目的:希望能帮助初学者更好的学习、运用AJAX框架。 我始终相信只有你真正理解了一种技术,了解了技术本身,你才能更好、更灵活的使

客户端文件,请修改文件名为: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


%>

分享:站长推荐:Ajax技术概述与现状应用
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 Ajax技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合。Ajax并没有创造出某种具体的新技术,它所使用的所有技术都是在

来源:模板无忧//所属分类:AJAX教程/更新时间:2012-06-08
相关AJAX教程