JS 监听网络状态

我们在开发过程中会遇到监听用户网络状态的需求,通过JS可以获取当前的网络状态,包括下载速度、网络延迟、网络在线状态、网络类型等信息

具体获取如下:

let info = navigator.connection
console.log(info)

在这里插入图片描述

可以看到,包含几个信息:

属性作用
dnwnlink网络下载速度,单位 mb/s
effectiveType网络类型,不准确
rtt网络延迟,单位 ms

我们还可以获取到当前网络的在线状态:

let isOnline = navigator.onLine
console.log(isOnLine)

在这里插入图片描述
能获取到网络信息,那我们怎么监听呢:

// 监听网络在线状态
window.addEventListener("onLine", updateInfo)
// 监听网络离线
window.addEventListener("offLine", updateInfo)
// 监听网络信息变化
navigator.connection.addEventListener('change', updateInfo)

function updateInfo() {
	// 获取网络状态
	let isOnLine = navigator.onLine
	// 获取网络信息
	let info = navigator.connection
}

除了以上监听事件外,还可以轮训监听,1秒获取一次

setInterval(updateInfo, 1000)
### UniApp 中实现监听网络状态 在 UniApp 开发环境中,可以通过调用 `uni.getNetworkType` 接口来获取当前的网络类型,并通过 `onNetworkStatusChange` 方法监听网络状态的变化。 #### 获取当前网络状态 为了获得设备当前的网络状况,可以使用如下方法: ```javascript uni.getNetworkType({ success: function (res) { console.log('getNetworkType success:', res.networkType); } }); ``` 此代码片段展示了如何查询并打印出当前的网络连接情况[^2]。 #### 动态监听网络变化 对于希望持续跟踪网络条件的应用程序来说,设置一个事件处理器用于接收网络变动通知是非常重要的。下面是一个完整的例子,它不仅初始化时检测一次网络环境,还会在网络发生改变的时候触发回调函数更新界面逻辑。 ```javascript // 在页面或组件生命周期内注册监听器 Page({ onLoad() { // 初始化时立即检查一次网络状态 uni.getNetworkType({ success(res) { console.log(`Initial network type is ${res.networkType}`); }, }); // 添加网络状态变更监听器 uni.onNetworkStatusChange(function (res) { if (!res.isConnected) { console.warn('Device has lost internet connection'); } else { console.info(`New network type detected: ${res.networkType}`); } }); }, onUnload() { // 移除监听器防止内存泄漏 uni.offNetworkStatusChange(); } }) ``` 这段脚本会在页面加载时执行上述操作,并且当用户离开该页面时取消绑定以释放资源[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小小白zyw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值