La Filosofia di AJAX

Autore: Carlo Bongiovanni
Pubblicato il 3 agosto 2007

Post Correlati

  • Nessun post correlato

Jesse James Garret dell’Adaptive Path ha coniato la definizione originale di AJAX.
Secondo questa definizione, AJAX incorpora queste caratteristiche:

• presentazione basata su standard usando l’Extensible HyperText Markup Language (XHTML) e fogli di stile a cascata (CSS).

• display dinamico dei dati ed interazione con essi utilizzando il Document Object Model (DOM)

• interscambio e manipolazione dei dati utilizzando l’Extensible Markup language (XML) e l’Extensible Stylesheet Language Transformations (XSLT)

• recupero dei dati in via asincrona utilizzando l’XMLHttpRequest

• Javascript come legame tra tutte le tecnologie appena elencate.

AJAX è uno stile di sviluppo che richiede un browser. L’interfaccia utente è modificata dinamicamente usando un linguaggio di programmazione che restituisce dati solo quando necessario, piuttosto che seguire l’approccio tradizionale che esegue un refresh dell’intera pagina quando la richiesta viene eseguita.

A livello di programmazione, AJAX e Javascript sono esempi di duck-typing e latent programming, e queste due tecniche li rendono capaci di eseguire codice in maniera dinamica e solo quando necessario.

Duck typed programming riguarda lo scrivere codice quando la definizione delle classi non è conosciuta prima del tempo, ma si sa che l’oggetto ha uno specifico comportamento.
I linguaggi classici di programmazione ad oggetti definiscono il comportamento dei tipi prima dell’esecuzione. Possiamo ad esempio guardare il codice che segue, che illustra l’essenza del duck typed programming.

[html]


Pulsante1 Pulsante2


[/html]

Quando il browser web esegue il codice, questo sarà parsato dall’alto verso il basso, seguendo questo schema:

1. definizione delle funzioni azione1, azione2 e RunAzione

2. instanziazione della variabile obj

3. definizione dei due pulsanti azione1 e azione2 che eseguono del codice javascript quando si clicca su di essi

4. definizione dell’elemento html div che identifica l’output..

Chiamare la funzione RunAzione genera un’eccezione, in quanto obj è un semplice oggetto per il quale non è stata definita nessuna implementazione del metodo runIt.

Un classico linguaggio di programmazione come C++, C#, o Java non riuscirebbe a compilare il codice qui sopra, poichè la funzione RunAzione esegue un metodo per un tipo al quale non è stato implementato quel metodo.

Quando il metodo di un oggetto è chiamato, stiamo usando la tecnica del latent typing (lett: “tipizzazione latente”).
Latent typing indica che l’associazione di un tipo ad una variabile avviene durante il run-time dell’applicazione; ciò vuol dire che non si conosce l’esatto comportamento di obj fino a quando l’applicazione non viene eseguita.

Un classico argomento usato per contrastare duck typing e latent programming, è che non si sa mai l’esatto comportamento del codice fino a quando non lo si esegue. Al contrario Java, C++ e .NET portano alla generazione di codice stabile e robusto. O perlomeno, questa è la teoria che porta avanti chi supporta lo static typing. Il problema però resta: con lo static typing si avrà del codice che compila senza problemi, ma il fatto che compili non garantisce la correttezza del codice stesso.

Un’altro argomento del supposto vantaggio nell’uso dello static typing, è dato da IntelliSense.
IntelliSense è una funzione che, digitato il nome di una variabile, ed eseguita una combinazione di tasti, riporta tutti i metodi, proprietà e strutture dati associate all’oggetto. Con IntelliSense puoi scrivere codice più velocemente, dato che non devi stare a pensare quanti parametri possiede un metodo, e così via.
Un problema da non ignorare su IntelliSense, è che spinge i programmatori a creare programmi con tecniche bottom-up. Tali tecniche sono richieste perchè IntelliSense non può funzionare se non sono stati definiti i tipi. Quindi, i programmi top-down sono diventati rari, dato che i programmatori sono costretti ad usare la tecnica opposta per sfruttare IntelliSense.

A questo punto, molti di voi si staranno chiedendo: perchè mai continuo a scrivere codice utilizzando linguaggi che mi portano a seguire delle convenzioni e mi impediscono di essere “libero”? La risposta è che tali linguaggi, con le loro IDE, creano un ambiente caldo e accogliente che mi porta a rilassarmi nell’idea che sto scrivendo codice che funziona.

La realtà è che ci sono casi in cui va bene procedere in questa direzione, e casi in cui bisogna essere più flessibili, a seconda dell’applicazione che si sta realizzando.

E’ importante realizzare che con AJAX hai la possibilità di creare contenuti e codice dinamico in maniera molto semplice e veloce, cosa che non puoi fare quando utilizzi altri linguaggi.

Fonti:
AJAX and REST Recipes
Adaptive Path

Questo articolo è stato pubblicato venerdì, agosto 3rd, 2007 ed inserito in Sviluppo Software. You can follow any responses to this entry through the RSS 2.0 feed. Puoi lasciare un commento, o utilizzare il trackback da inserire nel tuo sito e nel tuo blog per citare questo post.

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

One Response to “La Filosofia di AJAX”

  1. bdm on agosto 6th, 2007 at 09:20

    interessante esempio , ma per la priorizzazione del processo ? il metodo runIt prevede la gestione della coda in modo nativo o no ? va comunque gestita una sorta di funzione per l’enqueue delle entry ?

Leave a Reply

Feed RSS Blog Informatica Friuli Ci sono 1375 che leggono via Feed Reader


Iscriviti alla Newsletter


Creazione Siti e Servizi Web Friuli


Servizi Web in Friuli - Udine e Aquileia

Sei un' azienda, un libero professionista o un web designer del Friuli Venezia Giulia?
  • Ti serve, consulenza come azienda?
  • Vuoi proporci o cercare collaborazioni per la tua web agency?
  • Ti servono servizi web, un sito o un blog per la tua associazione?
Clicca qui per il modulo contatti

Servizi Web Open Source Aziende in Friuli Venezia Giulia - Udine Aquileia

Recensioni e Guide Utili

EBook 3 Consigli Su Come Personalizzare WordPress
EBook 3 Consigli Su Come Personalizzare WordPress Questo ebook è il primo pubblicato da Informatica Friuli dedicato alla personalizzazione di certi aspetti dei template per WordPress. Questo ebook non deve dare grosse aspettative ...

Continua a leggere...
Come Scegliere L’ Hosting Giusto Per Il Posizionamento
Come Scegliere L’ Hosting Giusto Per Il Posizionamento Non c'è hosting, spazio web dove hai caricato i file del tuo sito, che ti da la garanzia al 100% di posizionarti nella serp di Google al primo posto. [caption id="" ...

Continua a leggere...
NewsMastering con WordPress
NewsMastering con WordPress Prendo spunto da quanto si può leggere su MasterNewMedia per quanto riguarda il Newsmaster come la figura che filtra e fornisce ...

Continua a leggere...

Visitatori IF

Licenza IF

Tag

aquileia blog campi personalizzati come scrivere comunicati stampa comunicazione creazione sito custom fields editoria editori online facebook feed feedwordpress fidelizzare focus friuli hackcamp hosting hosting seo if linux mail marketing Marketing masternewmedia myspace nerd newsletter newsmaster Notizie IF plugin wordpress primi sui motori restyling sito robin good SEO servizi web sito nerd sitonerd social network template theme wordpress udine webdesign web design web service wordpress