首先,为什么要让前端判断用户的网络状态呢——为了更好的用户体验。

其次,前端能否判断网络状态?有哪些方法?

1,可以做到渐进式判断,不能做到绝对准确。

2,使用的是navigator.onLine或navigator.connection.rtt

根据我实际测试所得,

navigator.onLine 无法及时获取真实网络状态,比如手动把网线,使用定时器获取navigator.onLine,始终是true,过很久才变成false(差不多相当于一个ajax的timeout时间)

navigator.connection 可以实时监听到网络变化(延迟2-5秒),但是获取到的网络是一个模糊值

比如navigator.connection.rtt 是请求预估延迟xx ms,有时候是0毫秒的延迟,却恰恰是已经断网了。

所以我做了一下判断:const netWorkDownlink = navigator.connection.downlink; // 预估下载速度m/s

if (navigator.connection && navigator.connection.onchange === null) {

navigator.connection.οnchange=() => {

if (netWorkDownlink !== navigator.connection.downlink || navigator.connection.rtt === 0) {

//网络断开

} else if (netWorkDownlink === navigator.connection.downlink || navigator.connection.rtt !== 0) {

//连接到网络

}

}

}

虽然不太准确,但是目前测试没发现bug,

如果测试出了缺陷或者有更好的方法,欢迎评论。

——每天给大家分享点有用的知识。

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[前端js监听浏览器网络变化]http://www.zyiz.net/tech/detail-147027.html

html5中检测网络状态的方法,前端js监听浏览器网络变化相关推荐

  1. js监听浏览器返回、后退、上一页按钮事件方法

    一.监听浏览器事件 ⼤家知道在页⾯中我们可以使⽤javascript window history,后退到前⾯页⾯,但是由于安全原因javascript不允许修改history ⾥已有的url链接,但 ...

  2. js监听select值变化_网络编程——C++实现socket通信(TCP)高并发之select模式

    相关函数: 服务端: socket() bind() listen() FD_ZERO()等辅助函数 select() 高并发select模式 accept() read() 或 recv()等 wr ...

  3. 谷歌浏览器怎么改html5,关于谷歌浏览器不支持html5中audio的autoplay解决方法(js代码解决)...

    当我们直接写autoplay时,在chrome中浏览器并没有自动播放音频: 如果直接通过js来调用audio的play()方法也不行: 控制台还会报错 大概意思:play()调用失败,因为用户没有与文 ...

  4. android 获取wifi的加密类型,Android WIFI开发:获取wifi列表,连接指定wifi,获取wifi加密方式,监听wifi网络变化等...

    下面是 Android 开发中 WiFi 的常用配置,如:获取当前 WiFi ,扫描 WiFi 获取列表,连接指定 WiFi ,监听网络变化等等. 下面是效果图: GitHub 下载地址:https: ...

  5. 前端路由的原生代码实现?前端如何监听路由变化?

    前端如何监听路由的变化?如何根据前端路由的变化,去操作相应的DOM? 本文从前端层面上,大致解读一下,前端路由的监听与相关DOM操作的方法. 实现的基本原理: 首先,放置指定的DOM标识, 其次,当锚 ...

  6. linux 查看san链路状态,Linux下查看网络状态的方法

    当我的设备在机房,懒得去查看网线连接情况:或者设备在远端,没有条件让眼睛亲临现场,我需要在终端查看设备网络接口的物理连接状态.基于此种场景,我就了解了几种关于命令查看网络状态的方法. 1. ifcon ...

  7. HTML5新增的video标签,HTML5中video标签的使用方法

    HTML5中video标签的使用方法 发布时间:2020-08-27 11:33:56 来源:亿速云 阅读:100 作者:小新 这篇文章将为大家详细讲解有关HTML5中video标签的使用方法,小编觉 ...

  8. JAVAWeb开发(基于分片的网络状态查询方法、装置及存储介质)

    本文基于分片的网络状态查询方法.装置及存储介质已是申请的专利.本人为第一发明人,这里给出来是提供一种写专利的范本,仅供参考. 专利申请号:CN202110346967.5 正文部分: 技术领域 本申请 ...

  9. html5前端开发框架模板,HTML5中50个免费的Bootstrap前端框架模板

    原标题:HTML5中50个免费的Bootstrap前端框架模板 毫无疑问,Bootstrap模板的受欢迎程度依然如雨后春笋般迅速增长,这股力量就在不久前还被低估了呢,Bootstrap前端框架基于最新 ...

最新文章

  1. html %3c% page,page.html
  2. python是什么怎么用-什么是python items函数?怎么使用它?
  3. python连接spark_python如何通过pyspark的API操作spark
  4. hibernate.cfg.xml 配置(摘录)
  5. 任务型对话(一)—— NLU/SLU(意识识别和槽值填充)
  6. Echarts数据grid直角坐标系(xAxis、yAxis)详解
  7. 计算机文科类专业二本,适合文科生的二本大学 文科二本分数线是多少
  8. 老旗舰华为能用上鸿蒙吗,荣耀手机能升级鸿蒙吗?五款旗舰优先,老荣耀机主或有惊喜...
  9. 如果你身边有这样的人,赶紧让他说点什么,然后反过来买彩票
  10. [转载] JAVA中分为基本数据类型及引用数据类型
  11. android studio快捷键与Eclipse快捷键对比-没有之一
  12. IntelliJ IDEA使用技巧(四)——设置默认Maven的方法
  13. Shopee 店铺如何运营?运营思路心得分享
  14. sql——手机号码归属地、身份证前六位归属地、省市区级联
  15. 软件测试工程师必备技能之Java基础
  16. 稳定排序和不稳定排序
  17. html统计在线人数代码,网站在线人数以及历史访问人数的统计代码
  18. 【问题思考总结】为什么跳跃间断点变上限积分连续但是不可导?【直观理解 几何方法】
  19. 【科学究竟是什么/查尔默斯】读书笔记(上)
  20. HBuildX配置夜游神模拟器

热门文章

  1. 云计算机可以玩游戏吗,免费云桌面系统能跟云电脑一样玩游戏吗?
  2. 一文带你轻松了解什么是 LSL, LSR, ASL, ASR, ROL, ROR?
  3. html5红外遥控,自制红外遥控开关详细步骤(两款自制红外遥控开关方法) - 全文...
  4. R语言按照人口比例绘制甘肃地图
  5. 微信小程序 手机号 邮箱正则表达式验证
  6. 汽车FMCW毫米波雷达信号处理流程
  7. List集合 值进行累加
  8. 高德地图API定位失败 浏览器定位 IP定位
  9. c#写服务程序怎么判断文件夹内子文件夹里文件的变化
  10. 如何做好一名合格的项目组长