`

javascript判断机器是否联网的2种方法

阅读更多
只有机器已经联网以后,web应用才能启动,javascript判断机器是否联网。

在很多场景下,只有机器已经联网以后,web应用才能启动。如果没有联网,就会提示错误。
但是机器有时候要重启。 如果机器重启后,立刻启动web应用的话,可能,机器上的网络服务还没有准备好。

特别是windows7,启动网络服务需要好几秒,这个时候怎么办呢?
之前尝试过几种方法:
比如 通过ping来判断, 但是ping需要有一个非本机的ip地址。 这个不是很通用
比如监控某个端口是否已经被占用,但是光端口占用,也不能说明网络已经启动了。
另一个方面,如果是web应用的话,最好是在前端判断,比如用javascript。
网上也有人写 javascript 的ping的模拟效果。但确实有些麻烦。
怎么办呢,关键的时候,还是html5能给出好的解决方法:

方法一:
navigator.onLine
if (navigator.onLine) 
{ //正常工作} 
else { //执行离线状态时的任务} 


这个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属性的值也会改变,不过必须要手工轮询这个属性才能检测到网络状态的变化。
var EventUtil = { 
addHandler: function (element, type, handler) { 
if (element.addEventListener) { 
element.addEventListener(type, handler, false); 
} else if (element.attachEvent) { 
element.attachEvent("on" + type, handler); 
} else { 
element["on" + type] = handler; 
} 
} 
}; 
EventUtil.addHandler(window, "online", function () { 
alert("Online"); 
}); 
EventUtil.addHandler(window, "offline", function () { 
alert("Offline"); 
}); 
分享到:
评论

相关推荐

    使用JS在浏览器中判断当前网络连接状态的几种方法

    使用JS在浏览器中判断当前网络状态的几种方法如下: 1. navigator.onLine 2. ajax请求 3. 获取网络资源 4. bind() 1. navigator.onLine 通过navigator.onLine判断当前网络状态: if(navigator.onLine){ ... }...

    cocos creater 简单五子棋源码

    - `scripts`(未列出,但通常存在):存放游戏逻辑的JavaScript代码,如棋盘的初始化、落子逻辑、胜负判断等。 - `temp`文件夹:Cocos Creator在编译和预览过程中生成的临时文件,一般不需要手动编辑。 3. **其他...

    解析中国范围内的经纬度为省市区信息

    4. 判断经纬度坐标是否位于某个行政区域的边界内,这可能涉及到点在多边形内的判断算法,如射线交叉法。 5. 如果点位于某个边界内,返回相应的行政区划编码和名称。 离线处理的优势在于无需实时网络连接,适用于...

    (清华大学)DeepSeek从入门到精通 2025-2-18(1).pdf

    此外,DeepSeek还支持代码生成补全,例如为Python和JavaScript等编程语言生成代码片段和自动补全等功能,还包括技术文档的处理、代码调试、API文档生成等。 DeepSeek应用场景广泛,包括智能对话、文本生成、语义...

Global site tag (gtag.js) - Google Analytics