Ajax - Non solo un detersivo - 7

# Chiamata sincrona o asincrona

- 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 PHP function 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 javascritp callback_hello(str) nella pagina, alla quale verranno passati i dati ricevuti come parametro.

© Ing. Stefano Salvi - released under FDL licence