Network Information API - 提供有关系统网络连接的信息

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

Network Information API(网络信息 API)根据一般连接类型(例如,“wifi”、“蜂窝” 等)提供有关系统网络连接的信息。它可用于根据用户的连接选择高清内容或低清晰度内容。整个 API 包括添加 NetworkInformation 接口和 Navigator 接口的 Navigator.connection 属性。

注意: 此特性在 Web Worker 中可用。

实例

检测连接变化

此实例监视用户连接的变化。

var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
var type = connection.effectiveType;

function updateConnectionStatus() {
  console.log("连接类型由 " + type + " 改为 " + connection.effectiveType);
  type = connection.effectiveType;
}

connection.addEventListener('change', updateConnectionStatus);

预加载大资源

连接对象对于决定是否预加载占用大量带宽或内存的资源很有用。此实例将在页面加载后立即调用,以检查可能不需要预加载视频的连接类型。如果找到蜂窝连接,则 preloadVideo 标志设置为 false。为简单起见,本示例仅测试一种连接类型。实际用例可能会使用 switch 语句或其他一些方法来检查 NetworkInformation.type 的所有可能值。无论 preloadVideo 值是多少,您都可以通过 NetworkInformation.effectiveType 属性来估计连接速度。

let preloadVideo = true;
var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
if (connection) {
  if (connection.effectiveType === 'slow-2g') {
    preloadVideo = false;
  }
}

接口

NetworkInformation

提供有关设备用于与网络通信的连接的信息,并提供一种在连接类型更改时通知脚本的方法。NetworkInformation 接口不能被实例化。它是通过 Navigator 接口访问的。

规范

规范
Network Information API

浏览器兼容性

NetworkInformation

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持6179 不支持 不支持48 不支持
downlink6179 不支持 不支持48 不支持
downlinkMax611 不支持 不支持 不支持 不支持 不支持
effectiveType6179 不支持 不支持48 不支持
onchange6179 不支持 不支持48 不支持
ontypechange 不支持 不支持 不支持 不支持 未知 不支持
rtt6179 不支持 不支持48 不支持
saveData6579 不支持 不支持 支持 不支持
type611 不支持 不支持 不支持 不支持 不支持
在 Worker 中可用6179 不支持 不支持48 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持5038 未知31 未知45 不支持
downlink5038 未知 未知 未知45 不支持
downlinkMax5038 未知 不支持 未知45 不支持
effectiveType5038 未知 支持 未知45 不支持
onchange5038 未知 不支持2 未知45 不支持
ontypechange 不支持 不支持 未知 未知 未知 未知 不支持
rtt5038 未知 不支持 未知45 不支持
saveData6565 未知 未知 未知 支持 不支持
type5038 未知 不支持 未知45 不支持
在 Worker 中可用5038 未知53 未知45 不支持

1. 仅在 Chrome 操作系统中受支持

2. 在 Firefox 上,与 change 事件对应的事件处理程序属性为 ontypechange

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持6179 支持 不支持 支持 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持5038 未知141 未知37 不支持

1. 默认情况下,网络 API 已启用。可以使用 dom.netinfo.enabled 首选项禁用。

相关链接