使用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 相关文章推荐
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
May 27 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
jQuery实现的在线答题功能
Apr 12 Javascript
ECMAScript6函数默认参数
Jun 12 Javascript
jquery对象和DOM对象的相互转换详解
Oct 18 Javascript
JS实现一个简单的日历
Feb 22 Javascript
JS实现div模块的截图并下载功能
Oct 17 Javascript
深入理解vuex2.0 之 modules
Nov 20 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 jQuery
JS实现多物体运动的方法详解
Jan 23 Javascript
小程序实现页面顶部选项卡效果
Nov 06 Javascript
JS实现无限轮播无倒退效果
Sep 21 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 Document 代码注释规范
2009/04/13 PHP
PHP文件操作实现代码分享
2011/09/01 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
js判断当前页面在移动设备还是在PC端中打开
2016/01/06 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
canvas绘制多边形
2017/02/24 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
python实现简单的socket server实例
2015/04/29 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
python中如何使用insert函数
2020/01/09 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
班组长安全生产职责
2013/12/16 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
2014年辅导员工作总结
2014/11/18 职场文书