通过xmlHttp和ASP的结合,我们可以轻松完成网页的异步调用。 代码如下: 1.新建Display.asp(这是前台显示页面) 注意xmlhttp.readyState的4个属性 1:LOADING;2:LOADED;3:INTERACTIVE;4:COMPLETED
<%@ Language=VBScript %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> </HEAD> <script language="javascript"> xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); function fnDo(ID) { var xmlDom = new ActiveXObject("Msxml2.DOMDocument"); var strURL = "GetInfo.asp?ID=" + ID;
xmlhttp.Open("POST",strURL , true); xmlhttp.onreadystatechange = fnRun;
xmlhttp.Send(xmlDom);
divTest.innerHTML = "Loading..." } //-------------------------------------------------------- function fnRun() { var state = xmlhttp.readyState;
var xmlDom = new ActiveXObject("Msxml2.DOMDocument");
if (state == 4) { xmlDom.loadXML(xmlhttp.responseXML.xml); //alert(xmlDom.documentElement.selectSingleNode("//objXML").text) var getInfo = xmlDom.documentElement.selectSingleNode("//objXML").text; divTest.innerHTML = getInfo } } </script> <BODY> <input type=text id=txtInput> <input type=button value="异步调用" onclick="fnDo(document.all.txtInput.value)"> <DIV id=divTest></DIV>
<P> </P> </BODY> </HTML> 2.在建立GetInfo.asp(这是后台处理页面) <% Dim sID,objResult
sID = Trim(Request("ID")) 'sID = 28
Set objResult = Server.CreateObject("MSXML2.DOMDocument") objResult.loadXML ("<objXML></objXML>") '**************************************************************
'**************************************************************
objResult.selectSingleNode("objXML").text = "Get:" & sID
Response.ContentType = "text/xml" objResult.save (Response) Response.End
Set objSch = Nothing Set objResult = Nothing %>
3.运行Display.asp页面,在文本框里输入内容,点击按钮,可以看到Loading的提示,随后在不刷新页面的情况下得到了文本框里的内容。当然你也可以在GetInfo.asp那个页面里根据发送的参数做一些复杂的出来,随后把结果返回出来 |