0

0

HTML5如何借助NetworkInformation取网络数据_HTML5网络取数法【汇整】

星夢妙者

星夢妙者

发布时间:2026-01-17 16:44:02

|

539人浏览过

|

来源于php中文网

原创

NetworkInformation API 是 navigator.connection 暴露的只读接口,用于获取网络类型、有效带宽估算等元信息,支持监听状态变化,但不能发起请求或传输业务数据。

html5如何借助networkinformation取网络数据_html5网络取数法【汇整】

NetworkInformation API 不能直接“取网络数据”,它只提供设备当前网络连接的元信息(比如是否在线、类型、有效带宽估算),不负责发起 HTTP 请求或传输业务数据。

NetworkInformation 是什么,能做什么

它是 navigator.connection 暴露的一个只读接口,用于监听网络状态变化。典型字段包括:type"wifi""4g""bluetooth" 等)、effectiveType"2g""3g""4g""slow-2g")、downlink(估算下行 Mbps)、rtt(估算往返延迟 ms)。

它本身不发送请求、不解析响应、不替代 fetchXMLHttpRequest

  • 适合做「自适应加载」:比如弱网时只加载缩略图、跳过视频自动播放
  • 适合做「离线兜底提示」:监听 onchange 事件,在 type === "none" 时展示离线 UI
  • 不适合做「数据拉取」:它没有 get()send()fetch() 这类方法

如何安全访问 navigator.connection

该 API 不是所有浏览器都支持,且部分字段(如 downlink)在非 HTTPS 环境下会被禁用(Chrome 要求 secure context)。

立即学习前端免费学习笔记(深入)”;

Text-To-Song
Text-To-Song

免费的实时语音转换器和调制器

下载
  • 必须先检查 "connection" in navigator,否则在 Safari 或旧版 Edge 中会报 TypeError: Cannot read property 'onchange' of undefined
  • HTTPS 是硬性前提:HTTP 页面中 navigator.connection 可能存在但 downlinkrtt 返回 0undefined
  • effectiveType 在 Chrome 61+、Edge 79+、Firefox 93+ 支持;Safari 目前(截至 Safari 17)仍不支持
if ("connection" in navigator) {
  const connection = navigator.connection;
  console.log(connection.effectiveType); // e.g. "4g"
  console.log(connection.downlink);      // e.g. 10 (Mbps)
  connection.addEventListener("change", () => {
    console.log("Network changed:", connection.effectiveType);
  });
} else {
  console.warn("NetworkInformation API not supported");
}

常见误用:把它当 fetch 替代品

有人试图用 navigator.connection 直接“获取服务器返回的 JSON”,这是根本性误解。它不建立连接、不构造请求头、不处理 CORS、不解析响应体。

  • 错误写法:navigator.connection.fetch("/api/data") → 报错:Cannot read property 'fetch' of undefined
  • 正确组合方式:用 connection.effectiveType 决定是否发请求、发哪个版本的请求
  • 例如:弱网时改用轻量接口 /api/data?lite=1,或延迟非关键请求
if (navigator.connection?.effectiveType === "slow-2g") {
  fetch("/api/data?lite=1")
    .then(r => r.json())
    .then(data => renderLiteUI(data));
} else {
  fetch("/api/data")
    .then(r => r.json())
    .then(data => renderFullUI(data));
}

兼容性差 + 信息粗糙,别依赖它做精确判断

effectiveType 是浏览器基于历史 RTT 和吞吐量估算的粗粒度分类,不是实时测量值;downlink 是平均估算,可能滞后数秒甚至更久;Android WebView 和 iOS WKWebView 行为也不一致。

  • 不要用 downlink > 5 当作“可以加载高清图”的绝对条件——用户实际带宽可能瞬间跌穿
  • 不要监听一次就缓存结果——网络类型可能几秒内从 wifi 切到 4g,而事件监听没挂上就错过
  • 生产环境建议叠加使用:结合 fetchsignal.timeout、首字节时间(TTFB)、资源加载耗时等真实指标做二次判断

真正决定“能不能取到数据”的,永远是 fetchXMLHttpRequest 的执行结果,而不是 navigator.connection 的快照值。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

412

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

533

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

309

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

74

2025.09.10

html5动画制作有哪些制作方法
html5动画制作有哪些制作方法

html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

505

2023.10.23

HTML与HTML5的区别
HTML与HTML5的区别

HTML与HTML5的区别:1、html5支持矢量图形,html本身不支持;2、html5中可临时存储数据,html不行;3、html5新增了许多控件;4、html本身不支持音频和视频,html5支持;5、html无法处理不准确的语法,html5能够处理等等。想了解更多HTML与HTML5的相关内容,可以阅读本专题下面的文章。

427

2024.03.06

html5从入门到精通汇总
html5从入门到精通汇总

想系统掌握HTML5开发?本合集精选全网优质学习资源,涵盖免费教程、实战项目、视频课程与权威电子书,从基础语法到高级特性(Canvas、本地存储、响应式布局等)一应俱全,适合零基础小白到进阶开发者,助你高效入门并精通HTML5前端开发。

20

2025.12.30

html5新老标签汇总
html5新老标签汇总

HTML5在2026年持续优化网页语义化与交互体验,不仅引入了如<header>、<nav>、<article>、<section>、<aside>、<footer>等结构化标签,还新增了<video>、<audio>、<canvas>、<figure>、<time>、<mark>等增强多媒体与

15

2025.12.30

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

AngularJS教程
AngularJS教程

共24课时 | 2.7万人学习

CSS教程
CSS教程

共754课时 | 19.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号