------ Ajax ------
AJAX = Asynchronous JavaScript And XML.
AJAX non é un linguaggio di programmazione, AJAX puó essere usato solo in combinazione con pagine (scritte in linguaggi di programmazione lato server) che inviano una risposta messa in pratica da Javascript senza dover aggiornare la pagina corrente.
Questo sito, ad esempio, usa AJAX per cambiare il colore di sfondo. Javascript invia una richiesta AJAX a una pagina (nascosta) PHP, questa cambia la variabile globale del server che definisce il colore dello sfondo, tutte le pagine dipendono da questa variabile, cosí, senza dover aggiornare la pagina, tutte assumono lo sfondo voluto.
Un esempio:
la variabile xhttp é uguale ad una nuova istanza di XMLHttpRequest, quando xhttp cambia il suo stato, cioé quando ha inviato la richiesta, se (if) lo stato di lettura é "la risposta é pronta" (4) e lo stato del servizio é "OK" (200), scrivi la risposta nell'elemento con ID "demo".
open(metodo,percorso,asincrono): il metodo é GET (variabili accodate al percorso ajax_info.php?variabile1=valore1&variabile2=valore2 ecc.), nel caso di una chiamata semplice si puó usare il metodo POST.
Il percorso e il nome del file (per motivi di sicurezza il file deve risiedere nello stesso dominio, non si puó leggere un file di altri - mi sembra ovvio).
Indica se la richiesta viene effettuata in modo sincrono o asincrono, cioé in tempo reale o con un piccolissimo ritardo (si parla di millesimi di secondo), io personalmente preferisco asincrono, altrimenti quello continua a provare fin che non ci riesce.
Sovente capita di dover passare dati sensibili, come ad esempio un modulo di iscrizione in cui bisogna verificare che la password non sia giá stata usata, sicuramente bisogna avvalersi di una pagina scritta in un linguaggio che possa interrogare la relativa banca dati (database), la pagina non puó essere aggiornata, pena la perdita dei dati, non é assolutamente "igienico" passare la passwod in chiaro nella barra degli indirizzi.
In questi casi si fa una chiamata POST specificando:
- in quale contesto si opera
- chi effettua la chiamata
- i valori da passare
Il metodo POST offre diversi vantaggi: non c'é limite alla quantitá di dati trasmessi, i dati trasmessi sono crittografati, i dati trasmessi non sono visibili.
In jQuery funziona cosí:
Il sito ufficiale di jQuery
AJAX non é un linguaggio di programmazione, AJAX puó essere usato solo in combinazione con pagine (scritte in linguaggi di programmazione lato server) che inviano una risposta messa in pratica da Javascript senza dover aggiornare la pagina corrente.
Questo sito, ad esempio, usa AJAX per cambiare il colore di sfondo. Javascript invia una richiesta AJAX a una pagina (nascosta) PHP, questa cambia la variabile globale del server che definisce il colore dello sfondo, tutte le pagine dipendono da questa variabile, cosí, senza dover aggiornare la pagina, tutte assumono lo sfondo voluto.
Un esempio:
function caricaDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xhttp.open("GET", "ajax_info.php", true);
xhttp.send();
}
la variabile xhttp é uguale ad una nuova istanza di XMLHttpRequest, quando xhttp cambia il suo stato, cioé quando ha inviato la richiesta, se (if) lo stato di lettura é "la risposta é pronta" (4) e lo stato del servizio é "OK" (200), scrivi la risposta nell'elemento con ID "demo".
open(metodo,percorso,asincrono): il metodo é GET (variabili accodate al percorso ajax_info.php?variabile1=valore1&variabile2=valore2 ecc.), nel caso di una chiamata semplice si puó usare il metodo POST.
Il percorso e il nome del file (per motivi di sicurezza il file deve risiedere nello stesso dominio, non si puó leggere un file di altri - mi sembra ovvio).
Indica se la richiesta viene effettuata in modo sincrono o asincrono, cioé in tempo reale o con un piccolissimo ritardo (si parla di millesimi di secondo), io personalmente preferisco asincrono, altrimenti quello continua a provare fin che non ci riesce.
Sovente capita di dover passare dati sensibili, come ad esempio un modulo di iscrizione in cui bisogna verificare che la password non sia giá stata usata, sicuramente bisogna avvalersi di una pagina scritta in un linguaggio che possa interrogare la relativa banca dati (database), la pagina non puó essere aggiornata, pena la perdita dei dati, non é assolutamente "igienico" passare la passwod in chiaro nella barra degli indirizzi.
In questi casi si fa una chiamata POST specificando:
- in quale contesto si opera
- chi effettua la chiamata
- i valori da passare
xhttp.open("POST", "ajax_info.php");
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send(variabile1=valore1&variabile2=valore2&ecc.);
Il metodo POST offre diversi vantaggi: non c'é limite alla quantitá di dati trasmessi, i dati trasmessi sono crittografati, i dati trasmessi non sono visibili.
In jQuery funziona cosí:
$.ajax({url: "ajax_info.php", success: function(risultato){
$("#demo").html(risultato);
}});
Il sito ufficiale di jQuery