La cosa che più mi piace di ASP.NET AJAX non è il fin troppo abusato UpdatePanel (che pure i suoi bei meriti li ha tutti), bensì sbavo letteralmente per Microsoft AJAX Library, vale a dire quel popò di codice client che viene iniettato nelle pagine per
- estendere Javascript con concetti tipo namespace, reflection, interfacce, and so on...
- fornire un'infrastruttura per rendere quanto più possibile cross-browser il codice prodotto.
Esempio banale è la funzione $get, che ci permette di recuperare un'istanza di un elemento del DOM dato il suo id:
1 var myElement = $get('myElementId');
che non è nulla di trascendentale fintanto che la si usa per sostituire
1 var myElement = document.getElementById('myElementId');
ma che ad esempio diviene particolarmente comoda quando se ne usa l'overload
1 var myElement = $get('myElementId', 'parentElementId');
che ci permette di recuperare un element ispezionando solo un particolare ramo del DOM.
Altra chicca, per quanto mi riguarda, è il metodo $addHandler; il nome dice già tutto sulla funzionalità che implementa, ossia aggiungere un gestore ad un evento di un element, ma l'enorme vantaggio sta nel rendere cross-browser la signature e la logica dei gestori stessi:
1 $addHandler(myInput, "keypress", _myInputKeyPressHandler);
2
3 function _myInputKeyPressHandler(args)
4 {
5 // ....
6 }
Quel parametro args è di tipo Sys.UI.DomEvent ed interrogandone il field "charCode", ad esempio, si potrà risalire al tasto premuto dall'utente, a prescindere dal fatto che questi stia utilizzando , IE, Firefox, Opera, ecc.ecc.ecc.