Para comprender esto, permítanme explicar qué sucede en las aplicaciones tradicionales o web con llamadas al servidor sincrónico. Tradicionalmente, cuando realiza una llamada al servidor, por ejemplo, accediendo a un servicio web, tendrá que esperar hasta que el servidor envíe la respuesta. Mientras el navegador espera la respuesta, todas las operaciones se detienen.
Ahora imagine esperar la respuesta de una consulta de base de datos grande que puede tardar hasta 15 segundos. Su navegador tendrá que esperar hasta 15 segundos para hacer cualquier otra cosa.
En la llamada al servidor asíncrono, todas las operaciones dentro de su navegador no se detienen mientras espera la respuesta. Cuando se recibe la respuesta de la consulta, la ejecución salta a la devolución de llamada que se supone que se ejecutará después de que se reciba esa respuesta particular.
- Aunque el código HTML es el mismo, ¿por qué la salida difiere en los diferentes navegadores web?
- En HTML5, ¿ contiene o contiene ? Me estoy confundiendo un poco sobre esto.
- ¿Cuánto tiempo tomaría desplazarse hasta el final de tumblr?
- ¿Las herramientas como http://homestead.com y http://Wix.com realmente matan el verdadero diseño y desarrollo web?
- ¿Por qué las personas usan IFTTT? Hice una cuenta pero no estoy seguro de por qué debería quedarme.
Verifique esta función Jquery ajax que llama “SomeBigDataProcessing.php” desde el servidor (Supongamos que tarda 30 segundos en procesarse).
$ .ajax (“SomeBigDataProcessing.php”)
.done (function () {
console.log (“Procesamiento terminado \ n”);
});
console.log (“Algo más \ n”)
Si se trata de una llamada de sincronización, tendrá que esperar hasta 30 segundos hasta que pueda ver la salida “algo más” en la pantalla porque el navegador esperará la respuesta del servidor. entonces la salida sería:
Procesamiento hecho
Algo más
Pero, como se trata de una llamada AJAX, lo más probable es que vea la salida como:
Algo más
Procesamiento hecho
Esto se debe a que la ejecución no se detiene en una llamada asincrónica. Por lo tanto, imprimirá ” Algo más” primero y cuando el servidor termine con la ejecución de “SomeBigProcessing.php” saltará a la función Listo e imprimirá Listo Procesamiento
AJAX puede lograr llamadas asíncronas de clientes al servidor. Para leer sobre el marco asincrónico del lado del servicio, consulte Acerca de | Node.js