如何在JavaScript中检测Internet连接是否脱机?
我有一些Javascript JQuery代码,每隔5分钟对服务器进行一次Ajax调用,这是为了让服务器会话保持活动并保持用户登录.我$.ajax()在JQuery中使用方法.这个函数似乎有一个'错误'属性,我试图在用户的互联网连接断开时使用,以便KeepAlive脚本继续运行.我正在使用以下代码:
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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我会在屏幕上每10秒钟在一个警告框中弹出"成功",这很好.但是,一旦我拔下网线,我就什么也得不到,我期待错误功能被调用并看到"故障"警告框,但没有任何反应.
假设'错误'功能仅适用于从服务器返回的非'200'状态代码,我是否正确?有没有办法在进行Ajax调用时检测网络连接问题?