Благодаря сочетанию xmlHttp и ASP мы можем легко выполнять асинхронные вызовы веб-страниц.
Код выглядит следующим образом:
1. Создайте новый Display.asp (это страница внешнего интерфейса).
Обратите внимание на 4 атрибута xmlhttp.readyState.
1: ЗАГРУЗКА; 2: ЗАГРУЗЛЕНО; 3: ИНТЕРАКТИВНО; 4: ЗАВЕРШЕНО
<%@ Language=VBScript %>
<HTML>
<ГОЛОВКА>
<META NAME=GENERATOR Content=Microsoft Visual Studio 6.0>
</HEAD>
<язык сценария=javascript>
xmlhttp = новый ActiveXObject(Msxml2.XMLHTTP);
функция fnDo(ID)
{
вар xmlDom = новый ActiveXObject(Msxml2.DOMDocument);
вар strURL = GetInfo.asp?ID= + ID;
xmlhttp.Open(POST,strURL, true);
xmlhttp.onreadystatechange = fnRun;
xmlhttp.Send(xmlDom);
divTest.innerHTML = Загрузка...
}
//------------------------------------------------ --------
функция fnRun()
{
состояние вар = xmlhttp.readyState;
вар xmlDom = новый ActiveXObject(Msxml2.DOMDocument);
если (состояние == 4)
{
xmlDom.loadXML(xmlhttp.responseXML.xml);
//alert(xmlDom.documentElement.selectSingleNode(//objXML).text)
var getInfo = xmlDom.documentElement.selectSingleNode(//objXML).text;
divTest.innerHTML = getInfo
}
}
</скрипт>
<ТЕЛО>
<тип ввода=текстовый идентификатор=txtInput>
<тип ввода=значение кнопки=Асинхронный вызов onclick=fnDo(document.all.txtInput.value)>
<DIV id=divTest></DIV>
<П> </П>
</ТЕЛО>
</HTML>
2. Создайте GetInfo.asp (это страница фоновой обработки).
<%
Тусклый идентификатор sID,objResult
sID = Trim(Запрос(ID))
'sID = 28
Установите objResult = Server.CreateObject(MSXML2.DOMDocument)
objResult.loadXML (<objXML></objXML>)
'********************************************** * ************
'********************************************** * ************
objResult.selectSingleNode(objXML).text = Получить: & sID
Response.ContentType = текст/xml
objResult.save (Ответ)
Ответ.Конец
Установить objSch = Ничего
Установить objResult = Ничего
%>
3. Запустите страницу Display.asp, введите содержимое в текстовое поле, нажмите кнопку, вы увидите приглашение «Загрузка», а затем получите содержимое в текстовом поле, не обновляя страницу. Конечно, вы также можете выполнить некоторые сложные вычисления на основе параметров, отправленных на странице GetInfo.asp, а затем вернуть результаты.