Cuándo usar AJAX asíncrono o síncrono

AJAX, que significa JavaScript y XML asíncrono, es una técnica que permite que las páginas web se actualicen de forma asíncrona, lo que significa que el navegador no necesita recargar toda la página cuando solo ha cambiado un pequeño dato en la página. AJAX pasa solo la información actualizada hacia y desde el servidor.

Las aplicaciones web estándar procesan las interacciones entre los visitantes web y el servidor de forma sincrónica. Esto significa que una cosa sucede después de otra; El servidor no realiza múltiples tareas. Si hace clic en un botón, el mensaje se envía al servidor y se devuelve la respuesta. No puede interactuar con ningún otro elemento de la página hasta que se reciba la respuesta y la página se actualice. 

Obviamente, este tipo de retraso puede afectar negativamente la experiencia de un visitante web, por lo tanto, AJAX.

¿Qué es AJAX??

AJAX no es un lenguaje de programación, sino una técnica que incorpora un script del lado del cliente (es decir, un script que se ejecuta en el navegador de un usuario) que se comunica con un servidor web. Además, su nombre es algo engañoso: aunque una aplicación AJAX podría usar XML para enviar datos, también podría usar solo texto sin formato o texto JSON. Pero en general, utiliza un objeto XMLHttpRequest en su navegador para solicitar datos del servidor y JavaScript para mostrar los datos.

AJAX: sincrónico o asincrónico

AJAX puede acceder al servidor de forma síncrona y asíncrona:

  • Sincrónicamente, en el que el script se detiene y espera a que el servidor envíe una respuesta antes de continuar.
  • Asincrónicamente, en el que el script permite que la página continúe siendo procesada y maneja la respuesta cuando llega.

Procesando su solicitud sincrónicamente es similar a volver a cargar la página, pero solo se descarga la información solicitada en lugar de la página completa. Por lo tanto, usar AJAX sincrónicamente es más rápido que no usarlo en absoluto, pero aún requiere que su visitante espere a que ocurra la descarga antes de que pueda continuar cualquier interacción con la página. Las personas saben que a veces necesitan esperar a que se cargue una página, pero la mayoría de las personas no están acostumbradas a demoras significativas y continuas después de estar en un sitio. 

Procesando su solicitud asincrónicamente evita la demora mientras se realiza la recuperación del servidor porque su visitante puede continuar interactuando con la página web; la información solicitada se procesará en segundo plano y la respuesta actualizará la página cuando llegue. Además, incluso si una respuesta se retrasa, por ejemplo, en el caso de datos muy grandes, los visitantes del sitio pueden no darse cuenta porque están ocupados en otra parte de la página.

Por lo tanto, la forma preferida de usar AJAX es usar llamadas asincrónicas siempre que sea posible. Esta es la configuración predeterminada en AJAX. 

¿Por qué usar AJAX sincrónico??

Si las llamadas asincrónicas proporcionan una experiencia de usuario tan mejorada, ¿por qué AJAX ofrece una forma de hacer llamadas sincrónicas??

Si bien las llamadas asincrónicas son la mejor opción la gran mayoría de las veces, hay situaciones poco frecuentes en las que no tiene sentido permitir que su visitante continúe interactuando con la página web hasta que se complete un proceso particular del lado del servidor.

En muchos de estos casos, puede ser mejor no usar AJAX y, en su lugar, volver a cargar toda la página. La opción síncrona en AJAX está ahí para la pequeña cantidad de situaciones en las que no puede usar una llamada asincrónica pero la recarga de toda la página es innecesaria. Por ejemplo, es posible que deba manejar algunos procesos de transacción en los que el pedido es importante. Considere un caso en el que una página web necesita devolver una página de confirmación después de que el usuario hizo clic en algo. Esta tarea requiere sincronizar las solicitudes.