Non sono assolutamente un esperto ma cerco di farti un po chiarezza.
DarioN1 tu XMLHTTP lo usi server side per recuperare il contenuto della pagina, il problema è che nella elaborazione server side tu il risultato lo prendi in maniera sincrona ossia fino a che non ha recuperato il contenuto non esegue l'elaborazione successiva.
ES. (ASP)
codice:
Dim xml,url,risultato
url = "http://www.quellochevvoi.it/"
Set xml= Server.CreateObject("Microsoft.XMLHTTP")
xml.open "GET",Url,False
xml.Send()
Risultato = xml.ResponseText
Set xml = nothing
'O al massimo Risultato = xml.ResponseXml
'se lo rielabori con un XmlDocument
Ora , lato client ormai la maggior parte dei browser ha implementato l'oggetto XmlHttp.
Per M$ tramite activex per mozilla l'oggetto XmlHttpRequest()
Via Ajax si sfrutta la possibilita' dell'asincronicita' per richiamare pagine esterne e caricare appunto via Dhtml (e DOM) il contenuto da piazzare nel layout della pagina.
Quindi il concetto principale è creare una funzione che utilizzi l'oggetto XmlHttp per recuperare il dato.
Richiamare la funzione specificando il parametro true nell'open
codice:
d= document;
URL = "http://www.quellochevvoi.it/"
if (d.getElementById) {var x=(window.ActiveXObject)?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();}
if (x)
{
d.getElementById(idLayer).innerHTML = preloadText;
x.onreadystatechange = miaFunzione()
}
x.open("GET", URL, true);
x.send(null);
}
Come vedi l'oggetto ha un evento onreadystatechange che scatta ad ogni cambiamento di stato.
Associando una propria funzione a questo evento si puo' elaborare l'output (e questo viene fatto aspettando che lo scambio di dati sia avvenuto con successo (status=200) e sia effettivamente completato (readyState=4)
codice:
function miaFunzione() {
if (x.readyState == 4 && x.status == 200)
{
/*
A questo punto puoi prendere il risultato
x.responseXml ed elaborarlo con i metodi
del DOM di js oppure usando un diciamo
"Metodo Veloce" che si è discusso in 2 o 3 post
(Cerca AhAh) ed utilizzi semplicemente il
responseText e lo piazzi dove ti pare nella
pagina senza elaborarla nuovamente */
}
}
Nella pagina asp che viene interrogata, devi fare in modo che l'output generato sia xml e quindi aggiungi
codice:
Response.ContentType="text/xml"
e controlli che l'output generato sia xml valido
(nel caso tu debba usare responseText e basta non serve alcun accorgimento)