贝利信息

javascript中如何进行网络状态检测_怎样判断用户是否在线?

日期:2025-12-26 00:00 / 作者:夢幻星辰
JavaScript检测网络状态需结合navigator.onLine监听与fetch探测:前者监听online/offline事件获基础状态,后者通过同源HEAD请求验证真实连通性,并处理超时、页面可见性及误判场景。

JavaScript 中检测网络状态,核心是监听 navigator.onLine 属性变化,并结合实际请求验证,因为该属性仅反映浏览器“是否认为自己在线”,容易误判(比如连着 Wi-Fi 但无外网)。

使用 navigator.onLine 判断基础连接状态

navigator.onLine 是一个只读布尔值,页面加载时即有初始值,后续会随系统网络切换自动更新。但它不保证能访问服务器——例如本地断网但路由器仍通电,它可能返回 true

用 fetch 发起轻量探测验证真实连通性

仅靠 navigator.onLine 不可靠,建议搭配一次快速 HTTP 请求(如对自身域名的 /health 或空响应接口)确认服务可达性。

结合页面生命周期做主动检查

用户切到其他标签页或休眠设备时,online/offline 事件可能延迟触发。可在页面重获焦点或可见时主动校验:

处理常见误判场景

真实项目中要注意这些典型问题: