INTRODUZIONE
Cosa mi propone questo corso?
Questo vuole essere un corso semplice (infatti definito base) per farti conoscere le potenzialità e la logica di funzionamento di AJAX fornendoti semplici ma importanti delucidazioni su questo modo "avanzato" della programmazione ad ogetti e della dinamicità ed interattività che si può ottenere attraverso un semplice browser web.
Devo conoscere qualche linguaggio per addentrarmi a AJAX?
Purtroppo si!
Per intraprendere questo corso bisogna conoscere "benino" Javascript, che sarà per noi il linguaggio principale su cui lavoreremo. Essendo io un programmatore PHP, tutti gli esempi che vedremo lato server per l'interazione con Javascript saranno scritti in PHP e utilizzeranno un database MySQL.
Anche conoscendo ASP con l'ausilio di Access si può programmare utilizzando AJAX; per quello che riguarda Javascript il codice è lo stesso, però per quello che riguarda gli esempi lato server non verranno fornite indicazioni (dato che non conosco ne ASP ne Access).
Fatta tutta questa prefazione, cominciamo con il capire cos'è questo AJAX e cosa vuole proporre, nonchè i suoi pregi e i suoi difetti. Traendo spunto da quello spiegato su Wikipedia:
AJAX è l'acronimo di Asynchronous JavaScript and XML, ovvero una tecnica di programmazione web-oriented per applicazioni interattive e dinamiche. Se traducessimo in italiano la dicitura sopra, si leggerebbe Javascript asincrono e XML; ciò ci fa dedurre che AJAX non è un linguaggio di programmazione, ma bensì una tecnica di programmazione basata principalmente su Javascript (per questo bisogna conoscere questo linguaggio per addentrarsi in questa tecnica).
Naturalmente Javascript (che di seguito nel corso verrà abbreviato con JS per comodità) offrirà al nostro programma interattività con l'utente e dinamicità, ma non potrà mai dialogare con un database. Per questo ci servirà l'ausilio di PHP. In dettaglio ciò che AJAX utilizza per poter offrire la sua massima potenzialità è:
- HTML (o XHTML) e CSS per il markup e lo stile;
- DOM (Document Object Model) manipolato attraverso il linguaggio JavaScript per mostrare le informazioni ed interagirvi;
- l'oggetto XMLHttpRequest per l'interscambio asincrono dei dati tra il browser dell'utente e il web server;
- XML come formato di scambio dei dati.
Come verranno utilizzati questi elementi in combinazione tra loro e quali sono le alternative e le varianti degli stessi, lo vedremo nel proseguo del corso.
Come tutte le tecniche di programmazione, anche AJAX ha dei vantaggi e degli svantaggi e di seguito sono riportati i punti più salienti:
- le applicazioni AJAX devono essere testate su più browser per verificarne la compatibilità
- è richiesto che nel client sia attivato Javascript, quindi se il nostro utente non ha Javascript abilitato, AJAX non funzionerà mai!
Il codice Javascript che andrai ad imparare nel corso sarà scritto secondo le specifiche W3C e quindi compatibile con tutti i browser principali attualmente in circolazione (Mozilla, Firefox, Internet Explorer, Opera, Konqueror e Safari). Alcune tecniche evolute potrebbero non funzionare su qualche browser, tecniche che però non verranno trattate in questo corso.
Cosa significa Javascript asincrono?
Penso che saprai qual'è la differenza tra "sincrono" ed "asincrono"... si che uno è il contrario dell'altro!!
A parte la battuta, i due tipi di trasmissione dei dati sopracitati sono i due modi con cui avvengono le interazioni tra il client dell'utente (browser) e il nostro server web.
La modalità
sincrona è quella che normalmente avviene quando navighiamo in internet con il nostro browser:
rihiesta url ----> elaborazione del server ----> stampa pagina
quindi ogni richiesta ha una sola risposta interpretata dal browser e visualizzata.
Con AJAX la connessione verso il web server avviene in modalità
asincrona, ovvero JS può inviare richieste multiple verso il web server e gestire tutte le risposte in maniera "non sequenziale", ovvero senza un ordine di priorità:
richiesta -\ - elaborazione server -\
richiesta --> javascript -< - elaborazione server --> javascript --> risultato
richiesta -/ - elaborazione server -/
quindi, ogni richiesta verso il server viene gestita da JS che le invia al server il quale, una volta elaborata la risposta, la reinvia a JS che si preoccuperà di aggiornare la pagina dell'utente.
Il vantaggio di questa tecnica è che non sono obbligato ad inviare una richiesta ed aspettare una risposta (come avviene per la modalità sincrona), ma posso inviare N richieste al server e ricevere N risposte contemporaneamente e tutte gestite dal mio JS.
Cosa c'entra XML?
L'
XML, acronimo di eXtensible Markup Language, è una delle cose fondamentali per l'uso di AJAX. Attraverso questa struttura possiamo dialogare con JS direttamente e senza creare sutterfugi in quanto JS legge nativamente questo linguaggio e lo converte automaticamente in oggetti utilizzabili.
Ma per questo vedremo più dettagliatamente il suo funzionamento durante il corso.
Iniziamo?
Si, questa introduzione è una infarinatura dei vari argomenti che andremo a trattare nel corso e dai quali potrai approfondire ulteriormente la tua conoscenza di JS e applicarla per ottenere i risultati voluti.
Ti ricordo che per qualsiasi domanda o dubbio è a tua disposizione un
area specifica del forum di Web-Link.it
Tutto quello che verrà scritto in questo corso sarà correlato di esempi pratici che potrai scaricare ed eseguire tranquillamente nel tuo PC.
N.B. per poter eseguire gli esempi in locale dovrai avere a disposizione ed installato: web-server Apache (o simile), motore PHP, database MySQL.
Ci rileggiamo alla prima lezione!