AJAX e sul concetto di degradabilita’

AJAXTutti oramai sappiamo cos’è AJAX. Alcuni però lo definiscono un linguaggio di programmazione. Beh, IMHO non si può parlare di linguaggio a se stante, dato che è basato sul altri linguaggi, in primis il javascript.

Forse nasce proprio da questo fraintendimento una delle problematiche che ultimamente si notano spesso in quei siti internet che fanno uso intensivo di chiamate AJAX.

Prima di tutto ricordiamo qualche concetto base.

Di base AJAX permette di effettuare delle chiamate in background, senza necessità di caricare via browser dei file.
Il vantaggio è che è possibile aggiornare i dati in un database senza far passare il browser dell’utente per il file contenente lo script di aggiornamento dati. Allo stesso modo è possibile aggiornare il contenuto di una pagina senza che questa venga ricaricata.

Il risultato è ottenere una maggiore interattività del sito, associata ad un indubbio risparmio di banda. Facendo un esempio, pensate all’inserimeno dei commenti in questo blog. Utilizza proprio una tecnica AJAX. Cliccando sul submit parte la richiesta verso il file che si occupa di trattare i dati che riceve, aggiornare il database con il nuovo commento e visualizzarlo istantaneamente.
La stessa cosa, senza usare AJAX va fatta facendo caricare al browser dell’utente il file che si occupa di ricevere le variabili dallo script precedente, dopo di che lo stesso script reindirizza alla pagina di visualizzazione dei commenti.
Senza AJAX si hanno due loading di file dal browser, con AJAX uno solo passando il tutto in background senza che l’utente si muova dalla magina in cui sta.
Bello vero?! 🙂

Altro grandissimo vantaggio di AJAX è quello di non richiedere plugin o componentistica esterna al browser. Questo risulta già integrato e non è necessario far altro. Tutt’al più il coder si troverà a dover far interpretare certe istruzioni a M$IE.

Ma proprio perchè basta un’istruzione "OnMouseOver" per attivare una chiamata AJAX, certi utenti potrebbero preferire di disattivare JavaScript nel browser durante la navigazione di siti poco conosciuti.
Ed allora? La grande usabilità del sito internet dove va a finire? Solitamente a farsi benedire 🙂

E’ proprio questo il concetto di degradabilità: la capacità di una struttura web di soddisfare tutte le chiamate a prescindere dalle impostazioni del browser del client!

La degradabilità in flash è limitatissima. Se non hai il plugin in flash installato, nada sito in flash, ma si potrebbe sopperire alla cosa prevedendo che, qualcosa il client non abbia il giusto plugin installato, il sito internet mostri un’interfaccia in html tradizionale. Sicuramente meno usabile, ma è sempre meglio di un nulla di fatto 🙂

La capacità di degradare il proprio sito che utilizza AJAX è molto alta! In primis perchè, nella maggior parte dei casi, l’output di una chiamata AJAX è HTML.

Nella pratica, basta un "return false;" alla fine dell’istruzione ajax, subito seguito dall’istruzione NON ajax. Se il client ha JavaScript attivato, le direttive date si stopperanno alla fine delle istruzioni in javascript. Nel caso in cui il client abbia javascript disattivato, tutte le direttive comprese nel linguaggio di programmazione su cui si basano le tecniche AJAX saranno ignorate, compreso quel minuscolo "return false;" e andrà in loading l’istruzione seguente.
Ovviamente questa è solo una delle tante tecniche da utilizzare. Si potrebbero fare migliaia di esempi 🙂

La degradabilità da anche dei vantaggi in indicizzazione: poniamo il caso di un link che mostra in linea gli ultimi 10 post. In breve un clicca qui che visualizza una finestra a cascata ricavata via query eseguita in background. Insomma, ci siamo capiti… 🙂
Se inserisco la sola istruzione ajax, lo spider che link indicizza? Al contrario degradare adeguatamente un elemento del genere mi da il doppio vantaggio di aumentare l’accessibilità del sito e pure la quantità di link indicizzabili dai motori di ricerca.

In sostanza (IMHO) ci si deve mettere in testa che AJAX non è un fine, ma uno strumento. Uno strumento potente, ma pur sempre uno strumento.

Un sito internet non è fatto in AJAX, ma utilizza componentistica AJAX.

Ajax non è la soluzione, ma un mezzo (sicuramente passeggero) per ottimizzare le soluzioni 😉

PS: so benissimo che rispetto a quello che ho scritto non si ha coerenza perfetta con la piattaforma del blog. Ma tutto questo vuole essere uno sprono prima di tutto a me stesso 🙂

13 thoughts on “AJAX e sul concetto di degradabilita’”

  1. @ cadex1: non appena passo al nuovo, ti giuro che la prima cosa che farò è inviarti il mio dblog paro paro per com’è 🙂

  2. Buona idea quella di scrivere un post chiarificatore, spero lo leggano in molti.

    Quasi tutti ne parlano per sentito dire e combinano un casino 🙂

    Ad esempio non capiscono la differenza tra AJAX e DHTML dato che vedono gli stessi effetti grafici.

    Sia chiaro che alla fine dato che la maggior parte di queste persone sono semplici utilizzatori mi sta anche bene che non sappiano molto su quello che sta sotto l’applicazione che utilizzano. Un minimo di informazioni in più magari può comunque aiutarli a non prendere fischi per fiaschi.

    Quando te lo dice uno sviluppatore invece ti cadono le p**le a terra…

    Fai bene a parlare di degradabilità perche’ è un concetto fondamentale per le webapp.

    Per questo motivo un’applicazione dovrebbe essere sviluppata (almeno nelle funzioni di base) senza utilizzo di tecniche basate su JS e solo quando funziona dovrebbe essere arricchita.

  3. Perchè considero AJAX un (ottimo) primo passo verso la fruizione facile dei contenuti web.
    Ma non penso (e soprattutto non spero) sia un punto d’arrivo.

  4. E’ permessa una domanda che non c’entra un fico secco con l’argomento? La bustina che compare con il comando mailto è inevitabile?? Denghiu!

  5. Davide Davvero????????????????????????????????????????????????????

    Anche con la classifica dei top commentatori stile emuleitalia con i punti???

    f**ata .. spero poi di riuscire ad adattargli la mia grafica.. : - P

  6. @ moticanus: bustina? Dove compare sta bustina?

    @ cadex1: ehm, non sarà solo la grafica, anche il db è da aggiornare 🙂

  7. Nella sidebar a destra sotto il mio logo c’è l’immagine linkata con l’indirizzo gmail.

    Che è sta bustina? Mi mandi uno screenshot di quello che vedi?

  8. Ottimo articolo, sono in molti ad usare AJAX in maniera impropria se non addirittura esagerata, vincolando le funzionalità di un sito alla presenza di Javascript.

    @moticanus: se usi firefox probabilmente stai usando un'estensione di gmail che ti fa apparire l'icona con la busta accanto ad ogni indirizzo email

Comments are closed.