Eu tenho algum código Javascript JQuery que faz uma chamada Ajax para o servidor a cada 5 minutos, é para manter a sessão do servidor ativa e manter o usuário conectado. Estou usando o $.ajax()
método em JQuery. Esta função parece ter uma propriedade 'error' que estou tentando usar no caso de a conexão do usuário com a Internet cair para que o script KeepAlive continue a ser executado. Estou usando o seguinte 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);
}
});
}
Quando eu executá-lo, obtenho o pop-up 'Sucesso' na tela em uma caixa de alerta a cada 10 segundos, o que é bom. No entanto, assim que desconecto o cabo de rede, não recebo nada, esperava que a função de erro fosse chamada e veria uma caixa de alerta de 'Falha', mas nada acontece.
Estou correto ao presumir que a função 'erro' é apenas para códigos de status não '200' retornados do servidor? Existe uma maneira de detectar problemas de conexão de rede ao fazer uma chamada Ajax?