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.youkuaiyun.com/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);
}
}