Grâce à la combinaison de xmlHttp et ASP, nous pouvons facilement effectuer des appels asynchrones vers des pages Web.
Le code est le suivant :
1. Créez un nouveau Display.asp (il s'agit de la page d'affichage frontale)
Faites attention aux 4 attributs de xmlhttp.readyState
1 : CHARGEMENT ; 2 : CHARGÉ ; 3 : INTERACTIF ; 4 : TERMINÉ
<%@ Langage=VBScript %>
<HTML>
<TÊTE>
<META NAME=GENERATOR Content=Microsoft Visual Studio 6.0>
</HEAD>
<langage de script=javascript>
xmlhttp = nouveau ActiveXObject(Msxml2.XMLHTTP);
fonction 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 = Chargement...
}
//------------------------------------------------ ---------
fonction fnRun()
{
var state = xmlhttp.readyState;
var xmlDom = new ActiveXObject(Msxml2.DOMDocument);
si (état == 4)
{
xmlDom.loadXML(xmlhttp.responseXML.xml);
//alerte(xmlDom.documentElement.selectSingleNode(//objXML).text)
var getInfo = xmlDom.documentElement.selectSingleNode(//objXML).text;
divTest.innerHTML = getInfo
}
}
</script>
<CORPS>
<input type=text id=txtInput>
<input type=button value=Appel asynchrone onclick=fnDo(document.all.txtInput.value)>
<DIV id=divTest></DIV>
<P> </P>
</CORPS>
</HTML>
2. Créez GetInfo.asp (il s'agit de la page de traitement en arrière-plan)
<%
Dim sID,objResult
sID = Trim (Demande (ID))
'ID = 28
Définir objResult = Server.CreateObject (MSXML2.DOMDocument)
objResult.loadXML (<objXML></objXML>)
'************************************************ * ************
'************************************************ * ************
objResult.selectSingleNode(objXML).text = Obtenir : & sID
Réponse.ContentType = texte/xml
objResult.save (Réponse)
Réponse.Fin
Définir objSch = Rien
Définir objResult = Rien
%>
3. Exécutez la page Display.asp, saisissez le contenu dans la zone de texte, cliquez sur le bouton, vous pouvez voir l'invite de chargement, puis obtenez le contenu dans la zone de texte sans actualiser la page. Bien entendu, vous pouvez également effectuer des calculs complexes basés sur les paramètres envoyés dans la page GetInfo.asp, puis renvoyer les résultats.