Ho provato ajax e mi permetto qualche consiglio.
1) è molto semplice, ma l'implementazione che ne fa .net è (secondo me) assurdamente complicata.
2) che io sappia il callback non conviene utilizzarlo dato che verrà sepolto da Atlas
3) io non uso xml per trasmettere i dati, ma html che è molto più veloce e semplice da implementare.
in pratica:
bisogna procurarsi una decente funziona javascript che implementi ajax: ad esempio prototype.js o, meglio, farsela da soli
la pagina server richiamata, asp, aspx o php o altro, nel caso per esempio che debba restituire due campi, un GUID e la data odierna, io faccio:
1) campi separati da un delimitatore;
Me.Response.Clear()
Me.Response.ContentType = "text/plain"
Me.Response.Write(Guid.NewGuid.ToString & "|" & DateTime.Now.ToString())
Me.Response.End()
2)xml
Response.Clear()
Response.ContentType = "text/xml"
Dim xtw As New XmlTextWriter(Response.OutputStream, System.Text.Encoding.UTF8)
'creo dichiarazione xml e alcune proprietà di formattazione
xtw.WriteStartDocument(True)
xtw.Formatting = Formatting.Indented
xtw.Indentation = 4
xtw.QuoteChar = """"c
'commento
xtw.WriteComment("questo file restituisce un record di due campi: guid e data")
'creo l'elemento radice = records
xtw.WriteStartElement("records")
'eventuale inizio loop
xtw.WriteStartElement("record") 'elemento
xtw.WriteAttributeString("id", 1.ToString()) 'attributo
xtw.WriteElementString("guid", Guid.NewGuid.ToString) 'campo 0
xtw.WriteElementString("data", DateTime.Now.ToString()) 'campo 1
xtw.WriteEndElement()
'eventuale fine loop
xtw.WriteEndElement()
xtw.WriteEndDocument()
xtw.Close()
Response.End()
3) json
Me.Response.Clear()
Me.Response.ContentType = "text/plain"
Dim s$ = ""
s = String.Format("{{record:{1}", vbTab, vbNewLine) _
& String.Format("{0}{{{1}", vbTab, vbNewLine) _
& String.Format("{0}{0} guid:'{2}', {1}", vbTab, vbNewLine, Guid.NewGuid.ToString()) _
& String.Format("{0}{0} data:'{2}' {1}", vbTab, vbNewLine, DateTime.Now.ToString()) _
& String.Format("{0}}}{1}", vbTab, vbNewLine) _
& String.Format("}}", vbTab, vbNewLine)
Me.Response.Write(s)
Me.Response.End()
se interessa si può continuare con esempi, altrimenti ciao.