¿Qué son las aplicaciones web asincrónicas?

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.

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

A continuación, una comparación entre aplicaciones síncronas y asíncronas para una mejor comprensión. Básicamente, las aplicaciones asincrónicas hacen posible la comunicación en tiempo real, permitiendo que múltiples clientes interactúen con el servidor y reciban información mientras interactúan entre sí.

Aplicaciones tradicionales (sincrónicas)

Los sitios web sincrónicos interactúan con los usuarios que se comportan en las interacciones del usuario. Incluso con el uso de técnicas AJAX (que realiza solicitudes asincrónicas), esas solicitudes aún se generan en función de la interacción del usuario, por lo que el proceso permanece sincronizado. El usuario activa una solicitud y una vez que la solicitud ha sido respondida, la comunicación se detiene y espera hasta la próxima acción del usuario.

Ejemplo:

  1. El usuario llena un formulario en una aplicación web.
  2. El servidor responde a las solicitudes del usuario devolviendo los datos al usuario.
  3. En este punto, el formulario se actualiza y se realiza el ciclo de comunicación síncrono. Un nuevo bucle de comunicación síncrona comenzará cuando el usuario realice otra acción.

La aplicación síncrona ofrece una interacción pobre y es limitada debido a la falta de actualizaciones de solicitudes instantáneas. Incluso si está diseñado para realizar actualizaciones automáticas desde el servidor de aplicaciones, no es instantáneo. No podría ser un problema para la mayoría de las aplicaciones donde los cambios de datos no ocurren constantemente. Un sitio web de noticias, por ejemplo, podría tener una aplicación sincrónica para su fuente de noticias sin comprometer la experiencia del usuario.

Aplicaciones asincrónicas

Las aplicaciones asincrónicas permiten que el cliente (navegador) reaccione instantáneamente a los cambios en el servidor, sin comprometer la experiencia del usuario y entregando cambios de presentación espontáneos a medida que cambia el estado de un sistema dinámico, sin la necesidad de que el usuario interactúe con la interfaz , incluso sin la interacción del usuario, el servidor se mantiene * listo * para responder cuando ocurre algo nuevo.

Algunas aplicaciones se basan en la comunicación del servidor en tiempo real y permiten múltiples solicitudes simultáneamente. Deben mantenerse constantemente en contacto con el servidor para que, cuando se realicen las actualizaciones de datos, el usuario sea notado al instante y cada cliente tenga sus propios datos actualizados sin comprometer la información de los demás.

Como ejemplo, aplicaciones en tiempo real como Facebook y Gmail, la aplicación web Slack o incluso un simple sistema de chat.

Referencia adicional:

  • ¿Qué es la Web asincrónica y cómo es revolucionaria?
  • Solicitudes sincrónicas y asincrónicas

Aquí hay una gran analogía sobre la comunicación síncrona y asíncrona: http://stackoverflow.com/a/10102768

Cada aplicación web importante realiza solicitudes a uno o más servidores en respuesta a la entrada del usuario (por ejemplo, escribiendo o haciendo clic con el mouse). En una aplicación sincrónica, el usuario no puede realizar entradas adicionales hasta que el servidor responda. Como el tiempo para una respuesta a través de Internet no es fijo, esto puede hacer que una aplicación parezca lenta o bloqueada. Una aplicación asincrónica es donde algunas o todas las solicitudes se realizan a los servidores, pero el control se devuelve al usuario de inmediato. Luego hay un código adicional para interrumpir y manejar la respuesta cada vez que entra. El código asincrónico puede ser más difícil de codificar y acertar, por lo que a menudo solo se usa cuando es necesario.

Aquí hay un enlace muy útil. La diferencia entre la llamada jquery ajax síncrona y asíncrona se describe con la sintaxis y su aplicación.

http://quandaflow.com/jquery-aja

More Interesting

¿Cómo funciona Alexa desde una perspectiva de desarrollo web?

¿Qué tipo de aplicaciones web puedes hacer con PHP central?

¿Cuál es el mejor sistema de votación de ideas web?

¿Qué excelentes ejemplos de servicios web accesibles por SMS existen?

¿Cuánto costaría el desarrollo de un sitio web como Kickstarter?

Cómo promocionar un sitio de software (scripts web)

¿La descarga y la ejecución de aplicaciones reemplazarán el uso de un navegador web?

Cómo desarrollar un sitio web como quora.com

¿Es la decisión de Apple permitir a los bloqueadores de anuncios su forma de obligar a los editores a salir de la web y a las aplicaciones?

¿Qué sitios web o libros pueden servir como una guía exhaustiva para construir una aplicación web dinámica a gran escala?

¿En qué secuencia debo aprender la codificación si quiero crear una aplicación web?

¿Cuál es la mejor opción para auto hospedar una aplicación Rails y configurar un sistema CI / CP simple cuando se usa GitHub para el control de versiones?

¿Cuál es un método fácil para crear una aplicación web 'Room Visualization'?

Mi cliente me ha pedido que cree una aplicación personalizada para administrar su escuela. Esa aplicación debe sincronizar los datos con los servidores en línea siempre que Internet esté disponible. Sé algo de programación, un poco de PHP. ¿Qué lenguaje y herramientas pueden ayudarme a realizar la tarea rápidamente?

¿Qué enfoques son útiles para extraer el contenido de texto real de una página web de la etiqueta ?