• 网络-网络状态&网络速度




    前言

    本文主要记录如何监听网络状态和网络速度。


    一、网络状态

    获取当前网络状态:

    navigator.onLine // true:在线  false:离线
    
    • 1

    监听事件:online(联网) 和 offline(断网)

    window.addEventListener('online',function () {
        console.log('online')
      })
    
    • 1
    • 2
    • 3
    window.addEventListener('offline',function () {
        console.log('offline')
      })
    
    • 1
    • 2
    • 3

    二、网络速度

    获取当前网络信息

    navigator.connection // 返回 NetworkInformation 包含网络速度等信息
    
    • 1

    navigator.connection

    • downlink:0.35 ===> 当前网络连接估计下行速度
    • effectiveType:“2g” ===> 当前网络连接估计速度类型(slow-2g、2g、3g、4g)
    • onchange:null ===> 网络转换监听事件
    • rtt:1900 ===> 网络连接往返时间
    • saveData:false ===> 是否处于数据节省模式

    监听网络变化

    navigator.connection.addEventListener('change',()=>{
        console.log(navigator.connection.effectiveType)
        if (navigator.connection.effectiveType === '2g' || navigator.connection.effectiveType === 'slow-2g'){
          alert('当前网络状态不佳')
        }
      })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    监听网络变化

    navigator.connection在不同浏览器的兼容是不一样的

    • Chrome:从Chrome 61版本开始支持navigator.connection属性。
    • Firefox:从Firefox 59版本开始支持navigator.connection属性。
    • Safari:从Safari 12版本开始支持navigator.connection属性。
    • Edge:从Edge 79版本开始支持navigator.connection属性。
    • Internet Explorer:不支持navigator.connection属性。

    需要注意的是,即使浏览器支持navigator.connection属性,也不能保证所有设备和操作系统都支持该属性。因此,在使用navigator.connection属性之前,最好先检查其是否存在,以及是否为undefined。


  • 相关阅读:
    【Python】迭代器__iter__、__next__
    【AIGC调研系列】Claude 3 Haiku 最快且最具成本效益
    DoIP通信中的TLS加密
    python中random模块求随机数
    在低容错业务场景下落地微服务的实践经验
    C#实现二叉排序树定义、插入、构造
    生死时速,分秒必争
    PAT乙级 1070 结绳 python
    GPIO子系统(三)
    字符串压缩(一)之ZSTD
  • 原文地址:https://blog.csdn.net/smznbhh/article/details/133782149