本节内容:
用Js脚本检测机器的联网状态。
只有机器已经联网以后,web应用才能启动,下面使用javascript判断机器是否联网,具体判断代码如下,有此需求的朋友可以参考下
有些应用,需要在用户联网的情况下,也可以正常使用。
有时机器重启,网络暂时中断,特别是windows7,启动网络服务需要好几秒,此时怎么办呢?
之前尝试过几种方法:
比如,通过ping来判断, 但是ping需要有一个非本机的IP地址。 这个不是很通用
比如,监控某个端口是否已经被占用,但是光端口占用,也不能说明网络已经启动了。
另一个方面,如果是web应用的话,最好是在前端判断,比如用javascript。
有朋友用javascript的ping的模拟效果,不过太麻烦了。
可以考虑下html5给出的解决方法:
方法一:
html5的 navigator的新特性,可以搞定。
HTML5为此定义了一个navigator.onLine属性,这个属性值为true表示设备能上网,值为false表示设备离线。
当然不同的浏览器,对这个的支持还不太一样
IE6+和Safari 5+支持的比较好
Firefox 3+和支持navigator.onLine属性,但你必须手工选中菜单项“文件-Web开发人员(设置)-脱机工作”才能让浏览器正常的工作。
Chrome需要12以上。
方法二:
当然,如果想支持的更兼容,可以使用如下2个事件:online和offline。
当网络从离线变为在线或者从在线变为离线时,分别触发这两个事件。这两个事件在window对象上触发。
为了检测应用是否离线,在页面加载后,最好先通过navigator.onLine取得初始的状态。
然后,就是通过上述两个事件来确定网络连接状态是否变化。
当上述事件触发式,navigator.onLine属性的值也会改变,不过必须要手工轮询这个属性才能检测到网络状态的变化。
例子: