通过xmlHttp和ASP的结合,我们可以轻松完成网页的异步调用。
代码如下:
1.新建Display.asp(这是前台显示页面)
注意xmlhttp.readyState的4个属性
1:LOADING;2:LOADED;3:INTERACTIVE;4:COMPLETED
1@ Language=VBScript
1<html>
2<head>
3<meta content="Microsoft Visual Studio 6.0" name="GENERATOR"/>
4</head>
5<script language="javascript">
6xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
7function fnDo(ID)
8{
9var xmlDom = new ActiveXObject("Msxml2.DOMDocument");
10var strURL = "GetInfo.asp?ID=" + ID;
11
12xmlhttp.Open("POST",strURL , true);
13xmlhttp.onreadystatechange = fnRun;
14
15xmlhttp.Send(xmlDom);
16
17divTest.innerHTML = "Loading..."
18}
19//--------------------------------------------------------
20function fnRun()
21{
22var state = xmlhttp.readyState;
23
24var xmlDom = new ActiveXObject("Msxml2.DOMDocument");
25
26if (state == 4)
27{
28xmlDom.loadXML(xmlhttp.responseXML.xml);
29//alert(xmlDom.documentElement.selectSingleNode("//objXML").text)
30var getInfo = xmlDom.documentElement.selectSingleNode("//objXML").text;
31divTest.innerHTML = getInfo
32}
33}
34</script>
35<body>
36<input onclick="fnDo(document.all.txtInput.value)" type="button" value="异步调用"/>
37<input id="txtInput" type="text"/>
38<div id="divTest"></div>
39<p> </p>
40</body>
41</html>
2.在建立GetInfo.asp(这是后台处理页面)
1
2Dim sID,objResult
3
4sID = Trim(Request("ID"))
5'sID = 28
6
7Set objResult = Server.CreateObject("MSXML2.DOMDocument")
8objResult.loadXML ("
<objxml></objxml>
1")
2'**************************************************************
3
4'**************************************************************
5
6objResult.selectSingleNode("objXML").text = "Get:" & sID
7
8Response.ContentType = "text/xml"
9objResult.save (Response)
10Response.End
11
12Set objSch = Nothing
13Set objResult = Nothing
3.运行Display.asp页面,在文本框里输入内容,点击按钮,可以看到Loading的提示,随后在不刷新页面的情况下得到了文本框里的内容。当然你也可以在GetInfo.asp那个页面里根据发送的参数做一些复杂的出来,随后把结果返回出来。