venerdì 13 luglio 2007

Come creare l'oggetto XMLHttpRequest

Per poter utilizzare l'oggetto XMLHttpRequest XHR per l'invio della richieste e la ricezione delle risposte, è necessiario istanziare tramite il codice JavaScript un oggetto XHR.
L'implementazione varia da browser a browser, l'XHR viene istanziato come un oggetto ActiveX in Internet Explorer, mentre come un oggetto JavaScript nativo in Firefox, Mozilla, Opera, Safari. Sarà quindi sufficiente verificare se il browser supporta l'ActiveX per creare l'istanza XHR come oggetto ActiveX o in altrenativa come oggetto JavaScript nativo.



var xmlHttp;

function creaXMLHttpRequest(){
if (window.ActiveXObject) {
xmlhttp = new ActiveXOject("Microsoft.XMLHTTP");
}
else
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else alert("Questo browser non supporta AJAX");
}


Spiegazione del codice:
Bisogna creare una variabile globale detta xmlHttp, in cui verrà depositato il riferimento all’oggetto. Il metodo creaXMLHttpRequest() crea un’istanza di XMLHttpRequest, sulla base del tipo di browser.

L’istruzione if (window.ActiveXObject) valuta se il browser supporta i controlli ActiveX e quindi se è un Internet Explorer, nel qual caso assegna alla variabile xmlhttp l’istanza XHR mediante il costruttore new ActiveXOject("Microsoft.XMLHTTP").

Se il browser non supporta l’ActiveX, verrà valutata la condizione if(window.XMLHttpRequest) ovvero se il browser implementa XMLHttpRequest come oggetto JavaScript. A risposta positiva viene creata un’istanza XMLHttpRequest e assegnata alla variabile xmlHttp. A risposta negativa viene emesso un messaggio di avviso che il browser non suporta AJAX.

Nessun commento: