I have this code in a html file that checks for connectivity, but the problem here is that it takes about 10 seconds to throw the alert message box to indicate the connection is lost. I want to know if there's a much faster way to inform the user that the connection is lost without having to wait. Strictly JS thanks...
JS code:
<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>
Calling it in html file here:
<INPUT name="ccMCA1input" type="checkbox" onclick="ccMCA1.ccEvaluate(),Online()" value=False>
You could periodically request a 1x1 gif image from a(ny) server, making sure you use the cache buster method to avoid caching. You could use the onload and onerror events.
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();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With