Ajax es un protocolo por el cual el navegador web puede enviar una petición al servidor que no obligue (al código JavaScript) esperar por la respuesta, sino que la llegada de la respuesta, cuando esté disponible (eso quiere decir asincrónico) provocará el lanzamiento de una retrollamada prefijada por el programador para atender la respuesta.
Todo esto es debido a que JavaScript no tenía hilos de ejecución (solo había uno para cada página web).
Pero... el problema no es la asincronía, sino la espera de la respuesta.
Si estás usando JQuery para hacer las peticiones Ajax, puedes hacer que la función que atiende la respuesta detecte los
timeout. Por ejemplo:
http://stackoverflow.com/questions/3543 ... -a-timeoutCuando digo que el navegador debe recibir algo es al menos un carácter, desde el servidor, para saber que la conexión sigue viva.
De todas maneras... eso es lo que se hacía hace quince años... Ahora seguro que hay mejores métodos para evitarlo. A lo mejor, con definir un timeout en la llamada Ajax, como permite JQuery, sea suficiente.