用Javascript判断机器是否连接到Internet的2种方法

在许多情况下,只有在机器连接之后,才能启动Web应用程序。如果没有联网,就会提示错误。,
但机器有时会重新启动。如果机器重新启动并立即启动Web应用程序,机器上的网络服务可能还没有准备好。

特别是,Windows7,它需要几秒钟的时间来启动网络服务。这个时候你在做什么
以前已经尝试过几种方法:
例如,它是由平判断的,但是ping需要有一个非本地IP地址,这不是很常见。
例如,监视端口已被占用,但光端口占用,并不表示网络已经启动。
另一方面,如果是Web应用程序,最好在前端判断,例如,使用Javascript。
也有人在互联网上写的模拟Javascript的ping,但这确实有点麻烦。
你在关键时刻做什么,或者HTML5能提供一个好的解决方案:

方法1:
navigator.online
复制代码代码如下所示:
如果(在线导航)
{工作
否则{脱机执行任务}

HTML5导航器的新特性可以很容易地帮助我们。
HTML5定义这一navigator.online属性,这是一个真值,表明设备可以上网,和值是false表明设备脱机。
当然,不同的浏览器,对这个的支持是不一样的。
IE6 +和Safari 5 +更好的支持
Firefox 3 +和支持navigator.online属性,但你必须手动选择菜单项,Web开发者(设置)-脱机工作能让浏览器正常工作。
Chrome需要超过12。

方法二:
当然,如果您希望支持更兼容的功能,可以使用以下2个事件:联机和脱机。当网络从脱机更改为联机或脱机时,这两个事件分别触发。这两个事件在窗口对象上触发。
为了检测应用程序是否是离线的,最好是初始状态后,通过navigator.online加载页面。然后,通过上述两项判断网络连接状态的变化。当事件触发的navigator.online以上,属性值的变化,但必须进行手动检测网络状态的变化。
复制代码代码如下所示:
无功eventutil = { {
AddHandler:功能(元素、类型、处理){
如果(元。addEventListener){
element.addeventlistener(类型、处理程序、错误);
如果(元。attachevent){ }
element.attachevent(+型,处理程序);
{人}
元素+类型=处理程序;
}
}
};
EventUtil.addHandler(窗口,在线
警报(在线);
});
EventUtil.addHandler(窗口,脱机
警报(脱机);
});