MesBlog

Thinking in sharp architectures
posts - 179, comments - 436, trackbacks - 150

Abusare di AJAX

Questo non vuol essere un altro post in cui mostrare snippet di codice e nemmeno vuole essere una crociata pro o contro AJAX. Questo post ha l'unica presunzione di voler focalizzare un aspetto dell'abuso di AJAX.


Di qualunque cosa si può abusare, anche delle cose buone e giuste, o magari, più semplicemente, di quelle che in apparenza sembrano innocue. AJAX a prima vista sembra di quest'ultima schiera anche perchè non c'è niente di nuovo sotto il sole, magari qualle toolkit che facilita lo sviluppo, ma nulla di più nè a livello architetturale, nè a livello tecnologico.
Ma a mio avviso si può morire di AJAX (ma anche di Mastro Lindo se lo bevete la mattina prima di andare al lavoro...). Alzi la mano chi non ha pensato al controllo di lunghi job in asincrono subito dopo gli autocompletamenti tipo Google Suggests, come possibile applicazione di AJAX. La morte sua come si direbbe.


Un attimo, avete mai provato i test della scimmia (la più idiota, ma a suo modo efficace, metodologia di test delle GUI)? Quelli dove un pazzo scatenato si mette a cliccare a destra e a manca "per vedere l'effetto che fa". Uno dei (piccoli) vantaggi delle classiche vecchie web form standard è che "un click = un post = un refresh completo", certo da ottimizzare in modo che la pagina non stia a pensare troppo prima di eseguire il refresh, ma insomma ci siamo capiti. In questa modalità i danni che una scimmia può causare in qualche modo possono essere limitati.


Con AJAX il refresh può essere evitato, con effetti veramente carini da vedere, e finchè ci si limita agli autocompletamenti va anche bene. Ma si corre davvero il rischio di esagerare: AJAX.NET offre la possibilità con tre righe tre di codice di passare "sotto il tappeto" come per magilla interi dataset in maniera asincrona per esempio, o magari appunto la nostra bella applicazione web fa un polling sullo stato di svariati job in esecuzione sul server.
In questi scenari, con controlli "ajaxizzati" sparsi per la web form, provate a fare il test della scimmia. Bè, io ho provato ed il risultato è stato che mi sono dato un sacco di martellate virtuali sulle unghie dei piedi: chiamate che si accavallano, comportamenti strani, desincronizzazione degli eventi causa-effetto (non è detto che se clicco prima sul bottone A e poi sul B, l'effetto a video sarà in ordine prima quello dovuto ad A e poi quello dovuto a B). Insomma un guazzabuglio terrificante.

Non dimentichiamoci _mai_ che per l'utente il sistema è la GUI.

Morale della fiaba: AJAX, se abusato (e sottolineo abusato, nel senso che il troppo stroppa, ma il giusto spesso dà quel giusto tocco in più), ci pone di fronte a tutta una serie di veri e propri pericoli di cui necessariamente si deve tenere conto (ad esempio disabilitando i controlli, proprio come nelle windows form). Tutto ciò introduce, come se non ne avessimo già abbastanza, problematiche che spesso rendono il controllo di coerenza di una web form un autentico incubo, in uno scenario in cui la semplicità va a farsi benedire. E a mio avviso in ambito web (ma non solo), la semplicità è un fattore di successo delle applicazioni.

Saluti

powered by IMHO 1.2

Print | posted on Wednesday, August 31, 2005 8:27 AM |

Feedback

Gravatar

# AJAX al Real Code Day

Leggo ora sul blog di Stefano
Mostarda che al Real Code
Day terrà una sessione dal titolo assai...
10/24/2005 12:34 PM | Alessandro Ghioldi
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET