Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/01/2008, 02:59
venkman
Invitado
 
Mensajes: n/a
Puntos:
Re: sincronico o asincronico?

La diferencia está en el propio significado de las palabras.

En el caso síncrono, quiere decir que la llamada se hace de forma continua. Es decir, igual que llamas a cualquier función normalmente:
Código:
var respuesta = ajax.open(...);
alert(respuesta);
Llamas y la ejecución se espera hasta que la llamada responde. En la siguiente línea puedes hacer el alert porque sabes que ya se ha recibido la respuesta. El problema es que, como decía, hasta que no responda la llamada, la ejecución se para y se queda esperando. El navegador se bloquea.

En el caso asíncrono, no se espera a recibir la respuesta, sino que se le asocia a la llamada una función de callback y se continúa la ejecución. Cuando se reciba la respuesta (aproximadamente), se llamará a la función que se pasó.
Código:
ajax.open(...);
ajax.onreadystatechange = mifuncion;
ajax.send(null);
// otras cosas...
Cuando haces la petición, no esperas a que se reciba la respuesta, sino que la ejecución sigue y le dices "cuando se reciba la respuesta, llama a mifuncion para avisar".