我将此代码放在检查连接的html文件中,但问题是抛出警告消息框大约需要10秒钟来指示连接丢失。我想知道是否有更快的方式通知用户连接丢失而不必等待。 严格JS谢谢...
JS代码:
<script language="JavaScript">
function SubmitButton()
{
if(navigator.onLine)
{
document.getElementById('SubmitBtn').style.visibility='visible';
}
else
{
document.getElementById('SubmitBtn').style.visibility='hidden';
}
}
function Online()
{
var status=false;
status= navigator.onLine;
if(status!= true)
{
alert('Network connectivity is lost, please try again later');
}
}
</script>
在html文件中调用它:
<INPUT name="ccMCA1input" type="checkbox" onclick="ccMCA1.ccEvaluate(),Online()" value=False>
答案 0 :(得分:6)
您可以定期从(ny)服务器请求1x1 gif图像,确保使用cache buster method来避免缓存。您可以使用onload和onerror事件。
var isOnline = (function isOnline(){
// Create a closure to enclose some repeating data
var state = false;
var src = 'gif_url?t=' + Date.now();
var function onLoad = function(){state = true;}
var function onError = function(){state = false;}
// Inside the closure, we create our monitor
var timer = setInterval(function(){
var img = new Image();
img.onload = onLoad;
img.onerror = onError;
img.src = src;
}, 10000);
// Return a function that when called, returns the state in the closure
return function(){return state;};
}());
//Use as
var amIOnline = isOnline();
答案 1 :(得分:4)
navigator.onLine
是唯一可以检查的内置属性(并不是可靠的顺便说一句)
您可以向可靠的服务器创建XHR请求,并检查是否正在接收任何响应。
答案 2 :(得分:1)