Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
navigator.onLine is not a good way to test if the client is connected to the internet in an html5 offline application
var serverReachable = function() {
// IE vs. standard XHR creation
var x = new(window.ActiveXObject || XMLHttpRequest)("Microsoft.XMLHTTP"),
// requesting the headers is faster, and just enough
// append a random string to the current hostname,
// to make sure we're not hitting the cache
"//" + window.location.hostname + "/?rand=" + Math.random(),
// make a synchronous request
try {
s = x.status;
// Make sure the server is reachable
return (s >= 200 && s < 300 || s === 304);
// catch network & other problems
} catch (e) {
return false;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment