AJAX sì ma... con i Webservices!

di Matteo Casati, in .NET,

Da un po' di tempo a questa parte si sente molto parlare (anche sugli altri blog e nei forum di ASP Italia) di AJAX, acronimo di "Asynchronous JavaScript and XML", una tecnologia basata su XMLHttpRequest (che è ormai supportato da tutti i principali browser)
L'idea di fondo è piuttosto semplice (e nemmeno troppo innovativa) ma permette di aggiornare una pagina a seguito di chiamate al server senza dover ricaricare interamente la pagina stessa.

 NOTA: chi, leggendo "AJAX", ha pensato ad un detersivo o ad una squadra di calcio olandese può farsi un'idea dell'argomento trattato utilizzando il client Web di GMail o Google Suggest per vedere AJAX all'opera.

Per non essere fuori moda ho pensato di sviluppare anch'io qualcosa utilizzando AJAX e, dopo qualche test, sia con libreria strettamente client che con AJAX.NET, mi è venuta un'idea: anziché fare chiamate a pagine che rispondono in generico XML (o peggio ancora con qualche altra sintassi custom inventata al momento), perché non invocare dei normali e - si spera - standard webservices?

In questo modo, lato server, non ci resterebbe altro da fare che esporre la funzionalità che ci interessa invocare da remoto come WebMethod (con .NET non c'è niente di più facile, no?)

Ma come utilizzare poi la risposta SOAP senza processarla di volta in volta con del nuovo codice JavaScript alla ricerca dei nodi che ci interessano (ovvero come se fosse del "banale" XML)?
Semplicemente utilizzando la descrizione del webservice stesso: il suo WSDL!
Con un po' di codice JavaScript sono arrivato a generare "al volo" anche le classi più complesse che un webservice possa restituire, simulando in tutto e per tutto il proxy di .NET (cioè quello che fa Visual Studio all'aggiunta di un Web Reference o il tool dell'SDK "wsdl.exe")

Se ho stimolato la vostra curiosità e siete ansiosi di vedere all'opera il mio "SOAP Client", all'indirizzo http://www.guru4.net/articoli/javascript-soap-client/ trovate:

  • il codice sorgente ampiamente commentato
  • il downalod della libreria (è un solo file js e pesa circa 7 KB!)
  • una decina di esempi di utilizzo (demo)

Ovviamente sono graditi commenti, impressioni e suggerimenti!

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese