我们正在使用HTML5离线缓存。我们有轮询代码,用于检查用户是连接还是断开连接到服务器/网络。在线检测是通过调用网络部分下的appcache文件中提到的一个测试jsp页面完成的。通过将响应状态返回为0,此检查在Chrome中有效。
但它在Firefox中不起作用。 Firefox显示后备页面而不是提供脱机状态(代码0)。在这种情况下,respone状态代码仍为200.
我的appcache是:
CACHE MANIFEST
index.html
NETWORK:
TestIsOnline.jsp
FALLBACK:
/ fallback.html
检查状态的代码是:
$http({method: 'GET', url: 'TestIsOnline.jsp', cache: false}).success(function(data, status) {
console.log("user is online: status:"+status);
}).error(function(data, status) {
console.log("user is offline: status:"+status);
});
调用测试页'TestIsOnline.jsp'包含:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<title>To test online status</title>
</head>
<body>
test page
</body>
</html>
当我断开服务器时,在Chrome中我输出为“用户离线:状态:0”。
在Firefox中我仍然得到“用户在线:状态:200”。
如何在这里检测离线模式?