Ajax non è un nuovo linguaggio, ma un nuovo modo di utilizzare gli standard già esistenti!!
Ricordo che Ajax è basato su javascript la richiesta HTTP.
Per comunicare con il server, si utilizza l’oggetto XMLHttpRequest.
N.B. per l’elaborazione della richiesta è necessario un linguaggio dinamico lato server, come PHP,JSP,ASP
L’oggetto in questione è compatibile con le versioni di browser:
- Internet Explorer .05+
- Safari1.2
- Firefox 1.0+
- Netscape 7
- Opera 8+
Con XMLHttpRequest è possibile gestire i vari stati della richiesta HTTP:
La proprietà “.readystate” assume valori compresi tra 0 e 4.
- UNSENT=0 la richiesta non è ancora stata inizializzata
- OPENED=1 la richiesta è stata creata ed è pronta per essere spedita
- HEADERS_RECEIVED=2 la richiesta è stata inviata
- LOADING=3 la richiesta è in fase di elaborazione
- DONE=4 la richiesta è stata completata
creare un oggetto xmlHTTP = new XMLHttpRequest();
- xmlHTTP.onreadystatechange=function(){ … }si occupa di registrare la funzione che elaborerà la risposta dal server
- xmlHTTP.readyStateregistra lo stato della risposta del server:ogni volta che il readyState cambia, la funzione ” onreadystatechange ” viene eseguita
- responseTexti dati mandati indietro dal server vengono richiamati con la proprietà responseText
METODI:
- open(metodo, url, async, user, password)
- metodo = “GET”, “POST”
- url = URL completa della richiesta
- async = true/false (facltativo, default=true) {indica se la chiamata deve essere asincrona oppure sincrona}
- user, password (facoltativi)
- send(data)
- inizializza la richiesta
- data = corpo della richiesta HTTP(facoltativo)può essere un documento oppure un DOMString
- la URL è già stata data al metodo open()
- send() termina immediatamente se async==true,
ma il trasferimento continua in background
(Genera gli eventi readystatechange)
- send() trasferisce i dati in modo sincrono se
async==false
ELABORARE LA RICHIESTA:
quando la proprietà “readyState==4″, il corpo della risposta è totalmente arrivato e pronto per essere usato.
Si può accedere con la proprietà responseText oppure responseXML ,a seconda che si voglia elaborare i dati in formato XML oppure come semplice testo.

ESEMPIO PRATICO
1)inseriamo il codice javascript nell’header della pagina html
<script type=”text/javascript”>
function ajaxFunction()
{
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e) {
// Internet Explorer
try { // Internet Explorer 6.0+
xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);
}
catch (e) {
try { // Internet Explorer 5.5+
xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
catch (e) {
alert(“Your browser does not support AJAX!”);
return false;
}
}
}
xmlHttp.open(“GET”,”elabora.php”,true);
xmlHttp.send(null);//null– indica che non vengono inviati dati aggiuntivi nell’header
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
//prende i dati dalla risposta del server
document.getElementById(“idParagrafo”).value=xmlHttp.responseText;
}
}
}
</script>
2)ORA ANDIAMO A REGISTRARE LA CHIAMATA ALLA FUNZIONE,AD UN EVENTO(come un click del mouse) SU UN ELEMENTO DELLA PAGINA HTML, AD ESEMPIO:
<input type=”button” onclick=”ajaxFunction()”>invia</input>
3)ORA ANDIAMO A ELABORARE LA PAGINA elabora.php:
<?php
echo “contenuto della risposta”;//echo —-scrive in output
?>
specifiche su XMLHttpRequest