前端 网络相关事件 交互

前端 网络相关事件 交互

设置断线、上线提示

  • 这里可以做断线重连
    • 使用online表示在线事件
    • 使用offline表示离线事件

当前是否离线

javascript 复制代码
/**
 * * 判断是否离线
 * 如果是在线将值改为在线
 */
window.addEventListener("offline", function (event) {
    onlineStatus.innerHTML = "离线"
    isOnline = false
})

当前是否在线

javascript 复制代码
    /**
     * * 判断是否在线
     * 如果是在线将值改为在线
     */
    window.addEventListener("online", function (event) {
        onlineStatus.innerHTML = "在线"
        isOnline = true
    })

全部代码

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <input type="text" name="" id="">
    <h1 id="onlineStatus"></h1>
    <div id="networkStatus"></div>
</body>
<script>
    const onlineStatus = document.getElementById("onlineStatus")
    const networkStatus = document.getElementById("networkStatus")
    let isOnline = true// 在线状态

    /**
     * * 当前是否在线
     * 如果加载时如果不在线则修改状态
    */
    window.addEventListener("load", function (event) {
        if (isOnline) {
            onlineStatus.innerHTML = "在线"
        }
    })

    /**
     * * 判断是否离线
     * 如果是在线将值改为在线
     */
    window.addEventListener("offline", function (event) {
        onlineStatus.innerHTML = "离线"
        isOnline = false
    })

    /**
     * * 判断是否在线
     * 如果是在线将值改为在线
     */
    window.addEventListener("online", function (event) {
        onlineStatus.innerHTML = "在线"
        isOnline = true
    })
</script>

</html>

获取网络信息

  1. 网络连接类型
  2. 网络连接有效类型
  3. 最大下载速度
  4. 估计往返时延
  5. 数据节省模式
javascript 复制代码
// 当前网络连接对象
const networkInfo = navigator.connection;
console.log('网络连接类型:', networkInfo.type);
console.log('网络连接有效类型:', networkInfo.effectiveType);
console.log('最大下载速度:', networkInfo.downlinkMax + ' Mbps');
console.log('估计往返时延:', networkInfo.rtt + ' ms');
console.log('数据节省模式:', networkInfo.saveData ? '已启用' : '未启用');
相关推荐
范文杰2 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪2 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪2 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy2 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom3 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom3 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom3 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom3 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom3 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试
LaoZhangAI4 小时前
2025最全GPT-4o图像生成API指南:官方接口配置+15个实用提示词【保姆级教程】
前端