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


Posted in Javascript onMay 05, 2017

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

1. navigator.onLine

2. ajax请求

3. 获取网络资源

4. bind()

1. navigator.onLine

通过navigator.onLine判断当前网络状态:

if(navigator.onLine){
 ...
}else{
 ...
}

非常简单,但是并不准确-根据MDN的描述:

navigator.onLine只会在机器未连接到局域网或路由器时返回false,其他情况下均返回true。

也就是说,机器连接上路由器后,即使这个路由器没联通网络,navigator.onLine仍然返回true。

2. ajax请求

采用get请求的方式,根据返回值判断是否能够成功get到数据,从而确定当前的网络状态:

$.ajax({
 url: 'x.html',
 success: function(result){
  ...
 }, 
 error: function(result){
  ...
 }
});

3. 获取网络资源

原理同2,在页面放一张隐藏图片,设置其onerror函数(获取图片资源失败时会调用该函数):

<script src="./jquery-3.1.1.min.js"></script>
<script>
function getImgError(){
 alert("Network disconnect!");
}
$().ready(function(){
 $("#btn-test").click(function(){
  var imgPath = "https://www.baidu.com/img/bd_logo1.png";
  var timeStamp = Date.parse(new Date());
  $("#img-test").attr("src", imgPath + "?timestamp=" + timeStamp);
 });
});
</script>
<body>
 <img id="img-test" style="display:none;" onerror="getImgError()"/>
 <button id="btn-test">check status</button>
</body>

每次点击button时,更新该图片的src。若获取图片失败,则认为网络连接失败

这种判断网络状态的准确完全取决于图片资源是否稳定。。。

4. bind()

原理同1:

var netStatue = true;
$(window).bind('online', function(){
 netStatue = true;
});
$(window).bind('offline', function(){
 netStatue = false;
});
...
if(netStatue){
 ...
}else{
 ...
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
JS getMonth()日期函数的值域是0-11
Feb 15 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
Apr 27 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
Jan 20 Javascript
JavaScript cookie的设置获取删除详解
Feb 11 Javascript
JavaScript基础函数整理汇总
Jan 30 Javascript
基于JavaScript实现活动倒计时效果
Apr 20 Javascript
React Native中NavigatorIOS组件的简单使用详解
Jan 27 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 Javascript
基于Vue 实现一个中规中矩loading组件
Apr 03 Javascript
layui表格 列自动适应大小失效的解决方法
Sep 06 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 Javascript
js实现倒计时关键代码
May 05 #Javascript
javascript 中的继承实例详解
May 05 #Javascript
JavaScript函数表达式详解及实例
May 05 #Javascript
Node.js中的http请求客户端示例(request client)
May 04 #Javascript
Bootstrap布局之栅格系统学习笔记
May 04 #Javascript
vue.js开发环境搭建教程
May 04 #Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
May 04 #jQuery
You might like
基于php伪静态的实现详细介绍
2013/04/28 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
Python实现读取json文件到excel表
2017/11/18 Python
python中reader的next用法
2018/07/24 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
Python random模块的使用示例
2020/10/10 Python
python入门教程之基本算术运算符
2020/11/13 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
allbeauty美国:英国在线美容店
2019/03/11 全球购物
世界各地的当地人的食物体验:Eatwith
2019/07/26 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
资产经营总监岗位职责范文
2013/12/01 职场文书
爱护草坪标语
2014/06/24 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
2014年招商引资工作总结
2014/11/22 职场文书
大学生支教感言
2015/08/01 职场文书
小学大队长竞选稿
2015/11/20 职场文书
HTML基础详解(下)
2021/10/16 HTML / CSS