Anthony Holdener ha pubblicato di recente un articolo intitolato Cross-Browser Scripting with importNode(), un articolo da leggere con attenzione soprattutto perchè ricco di spunti per migliorare e gestire al meglio le proprie interazioni asincrone.
Personalmente però ho notato fin troppe incongruenze rispetto l’obiettivo iniziale dell’articolo:
- lo scopo è leggere informazioni XML, per qualche motivo non trasformate tramite XSLT ma iniettate nel più comune XHTML 1.1, operazione contradditoria dato che lo scopo dovrebbe essere sfruttare l’oggetto XMLHttpRequest, azzarderei quasi finalmente, per fare quello per il quale è stato progettato (interagire per l’appunto con documenti XML)
- l’obiettivo è rispettare il DOM, evitando di utilizzare il più semplice e veloce innerHTML… ma non si sa perchè a un certo punto del codice l’autore dell’articolo elimina il contenuto dell’elemento principale sfruttando proprio il parametro innerHTML…
- invece di sfruttare veramente il DOM e le migliori pratiche per interagire tramite Ajax, l’autore si incarta palesemente con un “workaround” capace di mostrare, singolarmente, quanto l’insieme delle operazioni utilizzate nell’articolo siano semplicemente più prolisse e meno standard.
Per concludere, trovo particolarmente inutile il risultato finale dell’esempio mostrato poiché l’utente in questo modo non risparmierà banda, non avrà un’interazione più rapida, semplicemente scaricherà sempre e comunque un’intera pagina, quella richiesta, con l’aggiunta di latenza data dalle dimensioni, comunque contenute, delle funzioni JavaScript che oltre a pesare in termini di bytes, pesano per le computazioni utili al fine di prendere il contenuto di un unico elemento della pagina richiesta.
Caricare un’intera pagina in Ajax è infatti solitamente uno degli errori più comuni e non trova giustificazione in un esempio di questo tipo nel quale, secondo me, JavaScript è addirittura superfluo e ridondante.
Quanto detto non pregiudica comunque la qualità dell’articolo, poiché seppur contraddittorio, mostra codice ben leggibile, spiega l’importanza del codice non intrusivo e della programmazione cross-browser, senza usare chissà quali alchimie e soprattutto in modo semplice e chiaro.
Voi cosa dite, al mio solito ho esagerato con la critica oppure siete soliti sfruttare intere pagine pur di far notare che sotto sotto c’è Ajax?