Scritto da davidonzo il 29/06/2007, in OpenSource
ATTENZIONE!
L'articolo che stai leggendo è stato scritto 510 giorni orsono.
Le informazioni presenti potrebbero non essere aggiornate!
L'articolo che stai leggendo è stato scritto 510 giorni orsono.
Le informazioni presenti potrebbero non essere aggiornate!
Tutti 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 :)










