Tengo un código de Javascript JQuery que hace una llamada Ajax al servidor cada 5 minutos, es para mantener viva la sesión del servidor y mantener al usuario conectado. Estoy usando el $.ajax()método en JQuery. Esta función parece tener una propiedad de 'error' que estoy tratando de usar en caso de que la conexión a Internet del usuario se interrumpa para que la secuencia de comandos KeepAlive continúe ejecutándose. Estoy usando el siguiente código:
var keepAliveTimeout = 1000 * 10;
function keepSessionAlive()
{
$.ajax(
{
type: 'GET',
url: 'http://www.mywebapp.com/keepAlive',
success: function(data)
{
alert('Success');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert('Failure');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
}
});
}
Cuando lo ejecuto, aparece la ventana emergente 'Éxito' en la pantalla en un cuadro de alerta cada 10 segundos, lo cual está bien. Sin embargo, tan pronto como desconecto el cable de red, no obtengo nada, esperaba que se llamara a la función de error y vea un cuadro de alerta de 'Fallo', pero no sucede nada.
¿Estoy en lo cierto al suponer que la función 'error' es solo para códigos de estado que no son '200' devueltos por el servidor? ¿Existe alguna forma de detectar problemas de conexión de red al realizar una llamada Ajax?