Introduzione ad AJAX: Il web del futuro

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

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC