网络信息 API
注意: 此功能在 Web Workers 中可用。
网络信息 API 提供有关系统连接的信息,包括一般连接类型(例如,“wifi”、“蜂窝”等)。这可用于根据用户的连接选择高清内容或低清内容。
该接口包含一个 NetworkInformation
对象,该对象的实例由 Navigator.connection
属性或 WorkerNavigator.connection
属性返回。
接口
NetworkInformation
-
提供有关设备用来与网络通信的连接的信息,并提供了一种机制,使脚本能够在连接类型发生更改时收到通知。
NetworkInformation
接口不能被实例化。它可以通过Navigator
接口或WorkerNavigator
接口访问。
对其他接口的扩展
-
返回一个
NetworkInformation
对象,其中包含有关设备网络连接的信息。 -
提供一个
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);
预加载大型资源
连接对象对于决定是否预加载占用大量带宽或内存的资源很有用。此示例将在页面加载后不久调用,以检查连接类型,在这种情况下预加载视频可能不可取。如果找到蜂窝连接,则 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;
}
}
规范
规范 |
---|
网络信息 API |
浏览器兼容性
api.NetworkInformation
BCD 表仅在浏览器中加载
api.Navigator.connection
BCD 表仅在浏览器中加载