首页 > 编程语言 >机器是否联网的javascript的判断方法介绍

机器是否联网的javascript的判断方法介绍

时间:2023-08-16 16:36:29浏览次数:32  
标签:机器 javascript 离线 element handler onLine navigator 联网 type


在很多场景下,只有机器已经联网以后,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");
});


标签:机器,javascript,离线,element,handler,onLine,navigator,联网,type
From: https://blog.51cto.com/u_7457870/7110095

相关文章

  • JavaScript – Alpine.js
    前言Alpine是高山的意思。Alpine.js是一个轻量级的JSFramework。我为什么会去用它呢?是这样的,我在做企业网站开发的时候会有2个阶段。第一个draft阶段,只写HTML、CSS、JS。不会涉及ASP.NETCore、SQLServer。第二个阶段就是final,会引入ASP.NETCore、SQLServer......
  • 对互联网酒店预订系统项目进行整体划分
     八.有条不紊:对互联网酒店预订系统项目进行整体划分  更多博客内容访问火龙蛋博客,点击了解详情 1、开篇上节课我们对互联网酒店预订系统需要使用到的基础组件进行了介绍,包含了响应包定义、数据库访问、缓存、微信消息推送等。这些功能作为课程的基础,辅助我们实现R......
  • ThingsKit物联网平台模拟网关+子设备MQTT接入
    准备工作MQTTX设备模拟工具下载MQTTX是由EMQ开发的一款开源跨平台MQTT5.0桌面客户端,它兼容macOS,Linux以及Windows系统。MQTTX的用户界面UI采用聊天式设计,使得操作逻辑更加简明直观。它支持用户快速创建和保存多个MQTT连接,便于测试MQTT/MQTTS连接,以及MQTT消息的订阅和发布。M......
  • ThingsKit物联网平台模拟HTTP设备接入
    准备工作POSTMAN设备模拟工具下载POSTMAN是一款支持HTTP协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好。无论是开发人员进行接口调试,还是测试人员做接口测试,POSTMAN都是首选工具之一。Postman平台创建虚拟设备创建直连测试产品:::info......
  • ThingsKit物联网平台模拟TCP设备接入
    准备工作TCP设备模拟工具下载NetAssist网络调试助手,是Windows平台下开发的TCP/IP网络调试工具,集TCP/UDP服务端及客户端于一体,是网络应用开发及调试工作必备的专业工具之一,可以帮助网络应用设计、开发、测试人员检查所开发的网络应用软/硬件的数据收发状况,提高开发速度,简化开发......
  • ThingsKit物联网平台模拟直连设备MQTT接入
    准备工作MQTTX设备模拟工具下载MQTTX是由EMQ开发的一款开源跨平台MQTT5.0桌面客户端,它兼容macOS,Linux以及Windows系统。MQTTX的用户界面UI采用聊天式设计,使得操作逻辑更加简明直观。它支持用户快速创建和保存多个MQTT连接,便于测试MQTT/MQTTS连接,以及MQTT消息的订阅和发布。M......
  • ThingsKit物联网平台意见反馈(管理员)
    概述用于接收移动端的用户需求反馈,默认只有超级管理员才有权限操作。:::warning......
  • ThingsKit物联网平台平台通知管理之发送通知管理
    在ThingsKit物联网平台内部向自己管理的用户发送平台通知。新增点击新增通知,填入想要发送的通知基本信息,确认。通知管理参数参数说明类型类型选择公告、会议、其他必选||标题|通知消息标题定义支持输入的格式:中英文、字符、数字支持输入的长度限制:36个......
  • ThingsKit物联网平台平台通知管理之我的通知
    当接收到新的平台通知后,在我的通知里面进行查看。搜索通过接收到的通知名称进行搜索查看通知。查看点击查看后,未读通知会变为已读。文章来源(首发地址):ThingsKit物联网平台......
  • ThingsKit物联网平台定时任务(管理员)
    概述统一管理全平台的定时任务,默认只有超级管理员才有权限操作。:::warning......