Network Information API

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

注意:此功能在 Web Workers 中可用。

Network Information API 提供有关系统连接的信息,包括通用连接类型(例如,“wifi”、“cellular”等)。这可用于根据用户的连接选择高清或低清内容。

该接口包含一个名为 NetworkInformation 的对象,该对象是 Navigator.connection 属性或 WorkerNavigator.connection 属性返回的实例。

接口

NetworkInformation

提供有关设备用于与网络通信的连接的信息,并为脚本提供了一种在连接类型更改时获得通知的机制。NetworkInformation 接口无法实例化。而是通过 Navigator 接口或 WorkerNavigator 接口进行访问。

其他接口的扩展

返回一个 NetworkInformation 对象,其中包含有关设备网络连接的信息。

WorkerNavigator.connection 只读

提供一个 NetworkInformation 对象,其中包含有关设备网络连接的信息。

示例

检测连接更改

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

js
let type = navigator.connection.effectiveType;

function updateConnectionStatus() {
  console.log(
    `Connection type changed from ${type} to ${navigator.connection.effectiveType}`,
  );
  type = navigator.connection.effectiveType;
}

navigator.connection.addEventListener("change", updateConnectionStatus);

预加载大型资源

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

js
let preloadVideo = true;
const connection = navigator.connection;
if (connection) {
  if (connection.effectiveType === "slow-2g") {
    preloadVideo = false;
  }
}

规范

规范
Network Information API

浏览器兼容性

另见