Ci sono due modi per chiamare una funzione del server:
Sincrono
Asincrono
Se la chiamata è sincrona, vuol dire che il programma non può andare avanti fino a che non arriva la risposta dal server: la pagina Web è bloccata fino all'arrivo della risposta.
La risposta da parte del server verrà immediatamente restituita alla funzione javascript della pagina che ha richiamato la funzione del server.
Se la chiamata invece è asincrona, una volta lanciata la chiamata il programma può procedere. Quando poi arriverà la risposta del server, verrà richiamata una funzione javascript nella pagina per gestirla.
Un esempio di chiamata sincrona è il seguente: str = agent.call('','hello','');
In questo esempio viene richiamata la funzione PHPfunction hello() conentua nel sorgente php della pagina corrente (primo parametro ''), non verrà richiamata nessuna funzione javascript alla ricezione dei dati (terzo parametro ''), non passerà nessun parametro alla funzione PHP e metterà ciò che la funione hello restituisce nella variabile str.
Unj esempio di chiamata sincrona è il seguente: agent.call('demo_external.php','calc','callback',x,y);
In questo caso la funzione function calc($x, $y) verrà richiamata dal file demo_external.php, con i valori di x ed y come parametro, sul server. La funzione ritornerà subito e al ricevimento dei dati verrà richiamata la funzione javascritpcallback_hello(str) nella pagina, alla quale verranno passati i dati ricevuti come parametro.