Neltuosito.itServizi Web Softvision | |
|
Ajax comodo Siamo prossimi alla conclusione. Con le conoscenze acquisite ci proponiamo di scrivere delle funzioni che rendono Ajax così semplice che per fare una query in Ajax e mostrare la risposta in un alert basterà scrivere: ajaxGet("primo.php",myHanlder); function myHandler(content) { alert(content); } In pratica la funzione ajaxGet dovrà predisporre la query, e poi chiamare l'handler passando come primo argomento il risultato della richiesta HTTP solo se la richiesta è andata a buon fine. Non c'è nessuna variabile globale, nessun controllo dello stato, tanto meno la ripetizione del codice necessario per creare l'oggetto necessario alla richiesta e alla sua inizializzazione. Ma non ci accontentiamo di questo, l'altra importantissima caratteristica che deve avere la nostra nuova interfaccia verso Ajax è la seguente: qualunque argomento addizionale passato alla funzione ajaxGet dovrà essere passato all'handler quando la richiesta viene completata, dunque il codice: ajaxGet("primo.php",myHandler,"a",10); function myHandler(content,first,second) { alert(content); alert(first); alert(second); } Avrà l'effetto di eseguire la richiesta e chiamare l'Handler con la risposta ottenuta dal server come primo argomento, la stringa "a" come secondo argomento e l'intero 10 come terzo. Riflettete un pò su questa caratteristica e vi accorgerete come ora la richiesta sia in grado di portarsi appresso lo stato, e permetta dunque di usare lo stesso handler per gestire diverse situazioni. Infatti dietro l'implementazione di ajaxGet ci sono proprio le chiusure, abbiamo preso i vantaggi della closure e li abbiamo trasportati nella nostra API, anche se nella pratica per usare tale API non serve conoscere le chiusure. E' importante notare come la possibilità di passare argomenti addizionali all'handler aumenti la potenza della nostra interfaccia. Immaginate di avere due divesi elementi DIV nella pagina. Volete fare delle richieste a diversi file PHP e visualizzare il contenuto in un DIV o nell'altro tramite innerHTML. Potete semplicemente scrivere: ajaxGet("primo.php",myHandler,"primodiv"); function myHandler(content,elementid) { var e = document.getElementById(elementid); e.innerHTML = content; } Se più tardi volete fare una nuova richiesta ma visualizzare il risultato in un DIV diverso, potrete riutilizzare il vecchio handler e scrivere semplicemente: ajaxGet("primo.php",myHandler,"secondodiv"); Vedrete come nella vita reale qualunque applicazione Ajax non banale presenta questo tipo di necessità. Ora che abbiamo visto come vorremmo che fosse la nostra interfaccia verso Ajax, andiamo ad implementarla utilizzando le tecniche di programmazione imparate fino ad ora e qualcuna nuova che sarà esposta quando occorre.
|
Softvision - Via Cesare Battisti, 101 - 67051 Avezzano (AQ) - P.IVA 02081660660
Privacy Policy - Cookie Policy