--- title: Network Information API slug: Web/API/Network_Information_API tags: - API - Experimental - Network Information API - Reference - WebAPI translation_of: Web/API/Network_Information_API ---
{{DefaultAPISidebar("Network Information API")}}{{SeeCompatTable}}
Network Information API はシステムのネットワーク接続に関する情報を、一般的な接続タイプ (例: 'wifi' や 'cellular' など) の観点から提供します。これは、ユーザーの接続を元に高解像度コンテンツまたは低解像度コンテンツを選択するために使用することができます。API の全体像は {{domxref("NetworkInformation")}} インターフェイスの追加と、{{domxref("Navigator")}} インターフェイスに追加された 1 個のプロパティ {{domxref("Navigator.connection")}} で構成されます。
{{AvailableInWorkers}}
以下の例では、ユーザーの接続の変化を監視します。
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
文その他のやり方で、 {{domxref("NetworkInformation.type")}} の可能な値すべてを確かめることになるでしょう。 type
の値にかかわらず、 {{domxref("NetworkInformation.effectiveType")}} プロパティを用いて接続速度を見積もることができます。
let preloadVideo = true; var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; if (connection) { if (connection.effectiveType === 'slow-2g') { preloadVideo = false; } }
NetworkInformation
インターフェイスはインスタンス化できません。代わりに、 {{domxref("Navigator")}} インターフェイスを通してアクセスします。仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('Network Information', '', 'Network Information API')}} | {{Spec2('Network Information')}} | 初回定義 |
{{Compat("api.NetworkInformation")}}
{{Compat("api.Navigator.connection")}}