di: Gabriele Farina 09 Novembre 2006
Nell'articolo di oggi parleremo di come è possibile far comunicare i client JavaScript con i nostri script server scritti in PHP. Per la comunicazione tra client e server in abito Web è pratica ormai consolidata l'utilizzo dell'oggetto XMLHttpRequest (implementato originariamente dalla Microsoft per Internet Explorer ed ormai esteso a qualunque browser conosciuto) e di protocolli specifici per permettere ad entrambi i poli di comprendere i messaggi inviati.
I protocolli utilizzati possono essere di qualunque tipo e natura, ma quello che sta lentamente guadagnandosi spazio tra la moltitudine di soluzioni utilizzabili è senza dubbio JSON. Il protocollo JSON non fa altro che specificare come formato di scambio dei messaggi la normale notazione con cui descriveremo un oggetto in JavaScript. In questo modo i messaggi sono abbastanza compatti e JavaScript può permettersi di interpretarli con grande velocità utilizzando semplicemente la funzione eval().
Per PHP sono presenti varie implementazioni per la codifica e la decodifica di oggetti in formato JSON, ed oggi ho deciso di soffermarmi sull'implementazione nativa fornita inizialmente attraverso il repository PECL e, con il rilascio della versione 5.2, come estensione abilitata di default. La scelta è caduta su questa estensione sia perchè la promozione ad estensione di default ne aumenterà esponenzialmente la popolarità sia perchè è un'implementazione estremamente veloce e semplice.
Il protocollo JSON (di cui sono state anche scritte delle semplici ma complete specifiche) è un formato di scambio dati molto semplice da leggere e generare da qualunque linguaggio di programmazione. Oltre a questo vantaggio, il protocollo risulta abbastanza compatto e di facile lettura anche ad occhio umano, facilitando il debug delle informazioni scambiate tra client e server senza la necessità di strumenti specifici per la decodifica.
JSON permette di codificare tipi di dato semplici come stringhe, interi, numeri a virgola mobile e due strutture complesse: la prima, che in PHP potremmo definire come array associativo o oggetto, è composta da delle coppie chiave-valore dove la chiave è sempre una stringa; la seconda invece è una lista di valori semplici o strutture complesse che in PHP potremmo identificare come un array. Su questa semplice base e prendendo qualche accorgimento da entrambi i poli di comunicazione è possibile scambiare la maggior parte dei dati necessari a JavaScript ed i linguaggi lato server per comunicare.
Vediamo ora un semplice esempio di messaggio JSON; prendiamo in esame una situazione in cui il client deve inviare al server una lista di oggetti selezionati da un utente all'interno di una tabella ed i rispettivi costi calcolati dal codice JavaScript prima dell'invio dei dati:
Listato 1: un messaggio JSON
{
"oggetti" : [
{
"nome" : "Penna stilografica",
"quantita" : 5
},
{
"nome" : "Quaderno a righe",
"quantita" : 3
}
],
"costi" : [ 1.50, 2.50 ]
}
Il messaggio così codificato identifica l'acquisto di cinque penne stilografiche con costo unitario 1.50 e tre quaderni a righe di costo unitario 2.50; possiamo notare come il formato del messaggio non definisca esplicitamente la relazione tra i diversi componenti, e per questo motivo è necessario (come del resto lo è anche quando si utilizzano formati alternativi di scambio) che client e server conoscano la struttura di dato che riceveranno in input.
In JavaScript la struttura dei dati in questione sarebbe stata definita praticamente utilizzando la stessa notazione a parte per gli apici doppi che racchiudono il nome delle chiavi; in PHP invece la struttura sarebbe stata rappresentata in modo leggermente diverso basandosi solamente su gli array. In entrambi i casi il formato è comunque molto semplice e facilmente interpretabile e riproducibile anche manualmente per testare il corretto funzionamento dell'applicazione.
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |