Skip to content

网络状态监控

作者:Yuan Tang
更新于:5 个月前
字数统计:540 字
阅读时长:2 分钟

前端 window 有一个内置 API 方法可以用于监控用户的网络状态、延迟和带宽等数据。下面简单看一下该属性的介绍。

前置知识

效果实现

因此可以利用上方的 API 方法实现需要的效果,代码如下:

js
function getNetworkInfo() {
  let info
  if (navigator.onLine) {
    info = {
      type: navigator.connection.effectiveType,
      rtt: navigator.connection.rtt,
      downlink: navigator.connection.downlink
    }
  }
  else {
    type: 'offLine'
  }

  return info
}

如何检测到信息变化呢?

  1. 如果是想要检测当前是否在线,可以通过 onlineoffline 事件实现。
  2. 如果想检测网络状态的变化,上面的方法不再适用,可以通过 navigator.connectionchange 方法实现。

代码如下:

js
window.addEventListener('online', () => {
  // ...
})

window.addEventListener('offline', () => {
  // ...
})

navigator.connection.addEventListener('change', () => {
  // ...
})

Contributors

Yuan Tang