javascript自动判断网络连接状态并提醒用户

Offline.js 是一个在用户失去互联网连接的时候自动提醒用户的 JavaScript 库,类似 Gmail 中的效果。它能够捕捉到断网时的 Ajax 请求,在网络连接恢复的时候重新发送请求,这样您的应用程序能够完美的恢复使用。它有几款美丽的主题,不需要任何配置。在现代的浏览器,如 Chrome,Firefox ,Safari 和 IE8+ 测试通过。

官网:http://github.hubspot.com/offline/docs/welcome/

下载:https://github.com/HubSpot/offline/archive/master.zip

下载后在offline-master\test 查看示例及用法


方法二:

<script language="Javascript" >

//创建xmlHttp对象

var xmlHttp = null;

function createXMLRequest( ){
    var msxmlhttp = new Array(
        'Msxml2.XMLHTTP.6.0',
        'Msxml2.XMLHTTP.3.0',
        'Msxml2.XMLHTTP',
        'Microsoft.XMLHTTP');
    for(var i = 0; i < msxmlhttp .length; i++) {
        try {
            if(xmlHttp  = new ActiveXObject(msxmlhttp[i] )) break;
        } catch (e) {
            xmlHttp  = null;
        }
    }
 
  if(!xmlHttp && typeof XMLHttpRequest != "undefined")
        xmlHttp = new XMLHttpRequest();

}

function getHtml(  ){
     createXMLRequest( );
     //状态调用函数
     xmlHttp.onreadystatechange = function(){
         if ( xmlHttp.readyState == 4 ){
                    if (xmlHttp.status == 200){
                                //状态成功执行,有网络
                               reflesh();

                     }else{
                       //没有网络跳转到a.html页面  
                        document.all.cma.src="a.html";

                  }

           }
     }
    //发送请求
    xmlHttp.open( "get","http://m.weather.com.cn/m/pn2/weather.htm" ,true);
    xmlHttp.send( null );

}
function reflesh(){
      //var city  = System.Gadget.Settings.read("city");
      var city  = "2";
      if (city > 100000000) {
           document.all.cma.src="http://m.weather.com.cn/m/pn2/weather.htm?id="+city+"T";
      } else {
          document.all.cma.src="http://m.weather.com.cn/m/pn2/weather.htm";
     }
}
onload = getHtml;
</script>
<iframe name="cma"></iframe>

方法三:java 实现 ,完整示例请访问 http://blog.csdn.net/xuke6677/article/details/44752207

 public static void main(String[] args) throws UnknownHostException, IOException {
  Runtime runtime = Runtime.getRuntime(); // 获取当前程序的运行进对象
  Process process = null; // 声明处理类对象
  String line = null; // 返回行信息
  InputStream is = null; // 输入流
  InputStreamReader isr = null; // 字节流
  BufferedReader br = null;
  String ip = "www.baidu.com";
  boolean res = false;// 结果
  try {
   process = runtime.exec("ping " + ip); // PING
   is = process.getInputStream(); // 实例化输入流
   isr = new InputStreamReader(is);// 把输入流转换成字节流
   br = new BufferedReader(isr);// 从字节中读取文本
   while ((line = br.readLine()) != null) {
    if (line.contains("TTL")) {
     res = true;
     break;
    }
   }
   is.close();
   isr.close();
   br.close();
   if (res) {
    System.out.println("ping 通...已经连接外网");
   } else {
    System.out.println("ping 不通...无法连接外网");
   }
  } catch (IOException e) {
   System.out.println(e);
   runtime.exit(1);
  }
 }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值