Web, ¿qué significa asincrónicamente?

En el desarrollo de software, las operaciones sincrónicas suceden una tras otra:

  • Operación 1
  • Operación 2
  • Operación 3

El compilador o intérprete garantiza que las tres operaciones anteriores se ejecutarán en secuencia: 1, 2, 3.

Asíncrono significa que algunas de esas operaciones se pueden ejecutar simultáneamente, lo que les permite terminar en un orden diferente, dependiendo de su duración. Por ejemplo, si la operación 2 fuera asíncrona, podríamos tener los siguientes escenarios de orden de finalización: 1, 2, 3 o 1, 3, 2 . En el primer caso, la operación 2 todavía se completa antes de la operación 3. En el segundo caso, la operación 3 finaliza antes de la operación 2.

Las técnicas para ejecutar operaciones asincrónicas varían. A menudo se ejecutan por hilos separados (como una llamada AJAX en el navegador).

En el desarrollo web front-end, AJAX son solicitudes HTTP asincrónicas enviadas al servidor mientras se carga la página. El beneficio de usar llamadas asincrónicas es que no bloquean la interfaz de usuario y pueden procesarse en segundo plano mientras el usuario interactúa con el sitio: las animaciones de JavaScript funcionan como de costumbre y el navegador es capaz de mostrar las actualizaciones en la pantalla.

Si la misma llamada fuera síncrona (totalmente factible con XMLHttpRequest), todo el navegador (o pestaña en los navegadores modernos) se congelaría hasta que se completara la llamada, congelando así la interfaz de usuario.

Quizás una analogía cotidiana puede ser útil.

Una llamada telefónica es sincrónica. Usted marca el número, espera a que la otra persona conteste y se hablan. No puedes hacer nada más hasta que termine la conversación.

Un mensaje de texto es asíncrono. Envía el mensaje y luego sigue con tu vida diaria normal. Cuando la otra persona responde, se le notifica. En algún momento después de eso, si lo desea, deja de hacer lo que estaba haciendo y vuelve a la conversación.