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

瀏覽器相容性

另見