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

王朝html/css/js·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

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

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

客户端文件,请修改文件名为: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 原创文章,作者本人对文章保留一切权利。

如需转载必须征得作者同意并注明本站链接

适用环境: IIS 6.0

IIS 5.0

Internet Explorer 6.0

关键字: >>>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航