¿El browser inicia una llamada AJAX inmediatamente o espera a que termine la operación actual?

Digamos que tengo un website donde cada usuario tiene un perfil.

Ahora un usuario con un perfil existente desea editarlo, por lo que hace clic en un button "editar mi perfil".

Supongamos que la interfaz de usuario que permite al usuario lograr esto es compleja y tarda algo de time en renderizarse (100 ms).

La llamada AJAX al server para recuperar los datos de perfil demora 150 ms.

Una vez que se hace clic en "editar mi perfil", procedo de la siguiente manera:

  • muestra un indicador de carga
  • hacer la llamada ajax (150 ms)
  • cuando la llamada ajax retorna, comstack la IU y la completa con los datos devueltos (100 ms)

time total: 250 ms

Pero … ¿y si pudiera proceder de esta otra manera?

  • comenzar la llamada ajax
  • build la interfaz (sin contenido), tal vez bloquearlo con un menu emergente modal en la parte superior que dice "cargando …"
  • cuando la llamada ajax vuelve, desbloquee la interfaz y llénela

¿El browser inicia una llamada AJAX inmediatamente o espera a que termine la operación actual?

Porque si lo hace, esto debería ser más rápido ya que construye la interfaz de usuario mientras hace la llamada AJAX, tomando 150 ms (construcción de IU superpuesta + llamada AJAX) + digamos 20 ms para actualizar la IU.

time total: 170 ms.

Como su nombre lo sugiere, las llamadas AJAX se ejecutan asincrónicamente. Por lo tanto, mientras su request está en path, otras funciones JS se pueden ejecutar sin problemas.