3 pagine in totale: <<Indietro 1 2 [3]
Il client
Ora che abbiamo a disposizione una classe riutilizzabile, scrivere codice AJAX è un gioco da ragazzi.
function receivedData() {
alert("Correct Result displayed via custom method"
+ "\n\nresponseText: " + this.req.responseText
+ "\nresponseXML: " + this.req.responseXML.xml);
}
function ExecuteSimpleCallback() {
new net.XMLHTTPRequestWrapper().loadData('BaseExample.aspx?xmlhttp=true');
}
function ExecuteCallbackViaGet() {
new net.XMLHTTPRequestWrapper(receivedData).loadData("BaseExample.aspx?xmlhttp=true&text1=" +
document.getElementById("text1").value + "&text2=" +
document.getElementById("text2").value + "&xml=" +
document.getElementById("chkXML").checked);
}
function ExecuteCallbackViaPost() {
new net.XMLHTTPRequestWrapper(receivedData).loadData("BaseExample.aspx?xmlhttp=true", "POST", "text1=" +
document.getElementById("text1").value + "&text2=" +
document.getElementById("text2").value + "&xml=" +
document.getElementById("chkXML").checked); }
Il metodo ExecuteSimpleCallback chiama la pagina BaseSample.aspx passando solo il parametro xmlhttp a true per specificare che si tratta di una chiamata AJAX. Il metodo ExecuteCallbackViaGet esegue una chiamata GET passando diversi parametri e specificando, nel costruttore della classe che esegue la richiesta, il callback di ritorno per le operazioni che terminano correttamente. Infine, il metodo ExecuteCallbackViaPost spedisce gli stessi parametri del metodo precedente con la sola differenza che questi vengono inseriti in una richiesta di tipo POST.
Il server
Lato server bisogna distinguere le richieste AJAX da quelle normali per seguire percorsi diversi.
void Page_Load(object sender, System.EventArgs e) {
if (Request.QueryString["XMLHTTP"] != null) {
Response.Clear();
if (Request.HttpMethod == "GET") {
Response.Write("GET" + Request.QueryString["text1"] + "," + Request.QueryString["text2"]);
}
if (Request.HttpMethod == "POST") {
if (Request.Form["text1"] != null) {
Response.Write("POST" + Request.Form["text1"] + "," + Request.Form["text2"]);
}
}
}
Response.End();
}
Se il parametro XMLHTTP è presente nell'url, significa che si sta gestendo una chiamata AJAX. In tal caso vengono recuperati i parametri a seconda del tipo di richiesta e poi vengono rinviati al client. Infine viene chiamato il Response.End per bloccare l'esecuzione della pagina ed inviare al client solo quello che è stato scritto nel buffer del Response.
I Callback in ASP.NET 2.0
In tempi non sospetti (2003), Microsoft aveva cominciato ad integrare in ASP.NET 2.0 l'utilizzo dell'oggetto XMLHttpRequest per eseguire operazioni senza refresh del browser; questa feature prendeva il nome di CallBack. Con il prolungato ritardo dell'uscita della versione 2.0 del .NET, l'avvento di AJAX ed il proliferare di Framework e l'entrata in gioco di ATLAS, questa feature si è rivelata essere (quasi) completamente inutile. Tra l'altro, risulta essere abbastanza invasiva e richiede diverso codice per ottenere effetti che con ATLAS o altre librerie sono molto semplici da realizzare. Non sarebbe così strano se in futuro questa feature venisse rimossa.
E' molto importante sottolineare una cosa: tutte le tecnologie e gli oggetti fin qui elencati fanno parte del mondo web già da molto tempo ed è per questo che non si può parlare di AJAX come tecnologia, ma solo come pattern.
Conclusioni
In questo articolo sono state analizzate le basi di quella che sembra essere una rivoluzione nel modo di sviluppare sul web. Anche se ci sono framework che fanno molte cose in più, la base di tutta la tecnica AJAX rimane sempre la possibilità di colloquiare in asincrono e senza postback con il server. Il resto non è altro che codice javascript che interpreta dati inviati dal server, quindi niente di realmente nuovo o rivoluzionario.
3 pagine in totale: <<Indietro 1 2 [3]
Contenuti dell'articolo
- Galleria fotografica dinamica con ASP.NET AJAX
- Usare Search come un servizio nei tuoi siti e nei tuoi client
- Mappe nel tuo sito con Virtual Earth
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Introduzione ai cloud based service con Windows Live Services
- Realizzare un custom extender AJAX con ASP.NET 3.5
- Tracciare le modifiche ai dati e allineare i datawarehouse con il Change Data Capture in SQL Server 2008
- Le nuove caratteristiche di IIS 7.0 per sviluppatori e sistemisti
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Difficoltà
Utilità
Stampa
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!