Ricorderete che viene usato col linguaggio Javascript perché in grado di passare al server un link alla routine che vogliamo sia eseguita e di ritornare il risultato al client, di solito andando a riempire un contenitore.
Bene, l'oggetto è supportato da tutti i browser moderni: Internet Explorer dalla versione 5, Safari dalla 1.2, Firefox dalla 1, Opera dalla 8. il problema più simpatico è la creazione dell'oggetto: infatti sembra quasi che ogni browser la pensi in modo diverso... Infatti, mentre per Mozilla e derivati il comando è sempre lo stesso, per Explorer bisogna usare un ActiveX e dipende dalla versione. Tanto per dare l'idea:
oggetto = new XMLHttpRequest (); // Firefox, Opera, Safari
// uno dei seguenti funzionerà con Explorer:
oggettoIE = new ActiveXObject ("Msxml2.XMLHTTP");
// oppure
oggettoIE = new ActiveXObject("Microsoft.XMLHTTP");
Allora è d'uso tra i programmatori un metodo d'urto: proviamo a crearlo; se funziona siamo a posto, se no proviamo un altro metodo! Poco elegante ma semplice; il tutto viene fatto sfruttando i comandi try /catch, che permettono di provare del codice ed eseguirne dell'altro in caso di errore. Supponendo di aver definito la variabile oggetto, il pezzo di codice sarà qualcosa sul genere di:
tryPotete provare questa funzione nel vostro browser per vedere se potete usarlo in AJAX: partite da un normale file html e aggiungete questo codice tra i tag <script> all'interno del <body>.
{
oggetto = new XMLHttpRequest ();
alert("creato! Siamo su Firefox, Opera o Safari");
}
catch (e) //se siamo qui l'oggetto non è stato creato
{
try
{
oggetto = new ActiveXObject ("Msxml2.XMLHTTP");
alert("Ehi! Siamo su Explorer prima versione!");
}
catch (e) //non ha di nuovo funzionato!
{
try
{
oggettoIE = new ActiveXObject("Microsoft.XMLHTTP");
alert("Wow! Explorer, seconda versione.");
}
catch (e) //peggio! Abbiamo un browser vecchio!
{
alert("mi spiace! Niente Ajax");
}
}
}
Nota: il funzionamento si basa ovviamente sul javascript e sulla gestione degli errori: se una routine non esiste, il chiamarla genererà un errore che posso gestire provando un altro metodo. Non pensate però di simulare un browser non compatibile disabilitando iL javascript: il browser semplicemente salterà tutto il contenuto all'interno dei tag <script>! In altre parole, per vedere l'ultimo messaggio dovete proprio avere un browser non compatibile!
Buon divertimento!
2 commenti:
si, funziona...
all' inizio non avevo letto la fine del post ed ho provato a disabilitare javascript per simulare un browser non compatibile: quando aprivo la pagina con lo script, non usciva niente...
poi ho letto la fine del tuo post ed ho capito!
P.S.: ma gli altri browser diversi da IE, Firefox, Opera e Safari non supportano AJAX?
In genere gli altri browser partono da "costole" di quelli più conosciuti: SeaMonkey parte da Mozilla, per esempio. Quindi se aggiornati dovrebbero avere le stesse caratteristiche di base... o così penso :-)
Posta un commento