L'avvento di Ajax ha sicuramente rivoluzionato una gran parte di siti e applicazioni web. Non esiste più sito che non faccia uso di script JavaScript nonostante questo linguaggio sia stato disprezzato da molti in passato.
Realizzare un sito web in Ajax significa modificare la vecchia concezione di sito web composto principalmente da link (il classico tag <a>) e form per inviare dati al server. Con questo, ormai non più nuovo, approccio non esiste più il concetto di pagina: tutto lo scambio dei dati avviene in maniera nascosta all'utente che spesso non si rende conto nemmeno di effettuare ulteriori richieste al server in quanto la pagina non cambia praticamente mai. Questo sicuramente è un notevole vantaggio in termini di interattività e usabilità della pagina: i tempi di attesa, una volta inizializzato l'engine, sono ridotti all'osso e l'applicazione risulta più reattiva agli eventi dell'utente rispetto al passato.
Tutta questa dinamicità però presenta alcuni difetti che dopo l'euforia iniziale per questo nuovo modo di fare web stanno piano piano emergendo e si fanno sempre più sentire. Il problema principale che presentano i siti realizzati con Ajax è l'impossibilità per i motori di ricerca di indicizzare i contenuti in quanto essi utilizzano browser testuali che, per giusti motivi di performance e rapidità delle richieste e del parsing, non presentano tutte le funzioni alle quali siamo abituati di trovare un un browser standard. Tradotto in parole povere significa che un sito che presenta Ajax non verrà mai indicizzato nella maniera corretta in quanto non si tratta di un sito “classico” ma presenta funzionalità avanzate e un uso massiccio di JavaScript.
Spesso la soluzione per ovviare a questo problema è quella del cloacking ovvero quella di fornire delle pagine differenti in base alla natura del client richiedente. Praticamente si tratta di rispondere con pagine web facenti uso di Ajax per i browser classici e con pagine web povere per gli spider di Google e company. Questa tecnica, oltre ad essere abbastanza scomoda da implementare (si tratta di realizzare due siti al posto di uno) è molto rischiosa in quanto vietata dai motori di ricerca. È ipotizzabile infatti che se uno spider riuscisse a rendersi conto di queste differenze, il nostro sito verrebbe inserito nella black list del motore di ricerca rovinando tutto il lavoro realizzato in precedenza dai nostri SEO.
Scartata questa soluzione, l'unica possibilità che rimane è quella del cosiddetto degradable Ajax ovvero quella di realizzare un sito o un'applicazione che funzioni in maniera simile sia se il browser del client presenta funzionalità JavaScript sia se si ha a che fare con un browser testuale tipico degli spider dei motori di ricerca.
HIJAX è una tecnica appunto di degradable Ajax e permette di realizzare siti e applicazioni web che possono essere visualizzati senza problemi anche su browser web che per un motivo o per l'altro non supportano Ajax. Utilizzando HIJAX è necessario anche utilizzare l'ormai diffuso paradigma dell'Unobtrusive JavaScript che prevede di mantenere separati i vari componenti che compongono una pagina web (quindi HTML per definire la struttura, CSS per il layout grafico e JavaScript per la parte di interattività e gestione degli eventi).
Utilizzando HIJAX la realizzazione di un sito segue i canoni tradizionali ovvero l'utilizzo in maniera standard di link e form. È però presente nella pagina uno script in grado di intercettare queste chiamate al server deviandole da un canale tradizionale ad un canale Ajax tramite l'oggetto XmlHttpRequest. In questo modo, se il browser non esegue lo script in questione la pagina si comporterà in maniera tradizionale non alterandone la struttura e i meccanismi comunicativi.
Ovviamente è necessario un ulteriore accorgimento anche dal punto di vista server-side in quanto nel caso di chiamate “classiche” esso dovrà rispondere, una volta elaborati eventualmente i dati ricevuti, con una pagina completa in quanto essa sostituirà completamente la pagina precedente. Nel caso invece di chiamate Ajax esso dovrò rispondere in maniera diversa. Utilizzando HIJAX è necessaria un'architettura completamente modulare che possa adattarsi in maniera rapida a questa doppia possibilità di risposta, da un lato “globale” e dall'altro “specifica”. Spesso l'approccio più utilizzato per comunicare al server questa differenza è l'utilizzo di un particolare parametro booleano che identifica o meno la presenza di un motore JavaScript all'interno del browser richiedente.
Guida jQuery UICreare siti ricchi e dinamici con jQuery UI, il progetto ufficiale... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Guida jQueryI fondamenti teorici e pratici per usare al meglio il più popolare... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base22 Febbraio 2010 a Milano |
|
Nessun corso previsto |