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

2016-02-19 22:31 25 1 收藏

下面,图老师小编带您去了解一下XMLHTTP异步获取返回值的代码超时测试(AJAX),生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - Web开发 】

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

%
dim i
dim r
dim t
dim lngGetI
lngGetI=request.querystring("geti")

on error resume next
lngGetI=clng(lngGetI)
if err0 then
response.write "GetError: not isnumber()"
response.end()
end if

if lngGetI0 or lngGetI500000 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 & "abr"
end if
next

response.write "run timer:" & cdbl(timer()-t) & "br"
response.write r

%

来源:https://www.tulaoshi.com/n/20160219/1628472.html

延伸阅读
  关于线程的参数(2.0)、“返回值”、及线程的中止 1.线程的参数: 有时候会想向辅助线程传递些信息,这里需要用到ParameterizedThreadStart 委托 示例:         private void btRunThread_Click(object sender, EventArgs e)         {   &nbs...
标签: Web开发
代码如下: SCRIPT LANGUAGE="JavaScript" !-- function ajaxByJyking(){ var xmlhttp_request = ""; try{ if( window.ActiveXObject ){ for( var i = 5; i; i-- ){ try{ if( i == 2 ){ xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); } ...
标签: Web开发
最近做个练习,用到Array.slice()和Array.splice(),以前没有注意其返回值类型 Array.slice()返回Array -- 一个由原始数组中某一范围的元素构成的数组。 Array.splice()返回Array -- 包含从原始数组中删除的元素的一个数组。 返回的是一个数组,用typeof()看一下是object,这没错!需要提醒大家的是: 当数组元素是数字时,用A...
标签: Web开发
% Function BytesToBstr(body,Cset)     dim objstream     set objstream = Server.CreateObject("adodb.stream")     objstream.Type = 1     objstream.Mode =3     objstream.Open objstream.Write body   &n...
  <script type="text/javascript" language="javascript"         <!--         //以XML求取数据         function XmlPost(theEmail)        ...

经验教程

875

收藏

66
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部