Network Information API

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

L'API Network Information (Informations réseau) fournit des informations sur la connexion de l'appareil : la bande-passante, si la connexion est mesurée ou non. Elle peut être utilisée pour choisir entre du contenu en haute définition ou en basse définition selon la connexion de l'utilisateur. L'API ne représente qu'un seul objet, ajouté au DOM : window.navigator.connection.

Exemples

Détecter les changements de connexion

Cet exemple permet de connaître les changements liés à la connexion d'un utilisateur. Cela ressemble notamment à la façon dont une application saura si l'utilisateur passe d'une connexion coûteuse à une autre connexion moins chère et pourra réduire la demande de bande passante afin de réduire les coûts pour l'utilisateur.

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

function updateConnectionStatus() {
  alert("Bande passante de la connexion : " + connection.bandwidth + " MB/s");
  if (connection.metered) {
    alert("La connexion est mesurée !");
  }
}

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

Préchargement de ressources gourmandes

L'objet connexion est pratique pour décider de précharger des ressources nécessitant une grosse quantité de bande passante ou de mémoire. Cet exemple devra être appelé après que la page ait été chargé. Il détermine si précharger la vidéo est judicieux selon le type de la connexion. Si une connexion cellulaire est trouvée, alors preloadVideo est réglé à faux. Ici pour faire simple, on ne teste qu'un type de connexion; dans un cas réel on aurait plutôt utilisé une structure de contrôle switch ou une autre méthode pour avoir tout les cas possibles de NetworkInformation.type. Malgré la valeur type, on peut avoir une estimation de la vitesse de la connexion à travers la propriété NetworkInformation.effectiveType.

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

Interfaces

NetworkInformation
Fournit des informations sur la connexion de l'appareil et fournit la possibilité aux scriptes d'être informé en cas de changement. L'interface NetworkInformation ne peut pas être instanciée; à la place on y accède à travers l'interface Navigator.

Spécification

Spécification Status Commentaire
Network Information API
La définition de 'Network Information API' dans cette spécification.
Projet Spécification initiale

Compatibilité des navigateurs

NetworkInformation

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
NetworkInformation
Expérimentale
Chrome Support complet 61Edge Support complet 79Firefox Aucun support NonIE Aucun support NonOpera Support complet 48Safari Aucun support NonWebView Android Support complet 50Chrome Android Support complet 38Firefox Android Support complet 31Opera Android Support complet 45Safari iOS Aucun support NonSamsung Internet Android Support complet 3.0
downlink
Expérimentale
Chrome Support complet 61Edge Support complet 79Firefox Aucun support NonIE Aucun support NonOpera Support complet 48Safari Aucun support NonWebView Android Support complet 50Chrome Android Support complet 38Firefox Android ? Opera Android Support complet 45Safari iOS Aucun support NonSamsung Internet Android Support complet 3.0
downlinkMax
Expérimentale
Chrome Support complet 61
Notes
Support complet 61
Notes
Notes Only supported in Chrome OS
Edge Aucun support NonFirefox Aucun support NonIE Aucun support NonOpera Aucun support NonSafari Aucun support NonWebView Android Support complet 50Chrome Android Support complet 38Firefox Android Aucun support NonOpera Android Support complet 45Safari iOS Aucun support NonSamsung Internet Android Support complet 3.0
effectiveType
Expérimentale
Chrome Support complet 61Edge Support complet 79Firefox Aucun support NonIE Aucun support NonOpera Support complet 48Safari Aucun support NonWebView Android Support complet 50Chrome Android Support complet 38Firefox Android Support complet OuiOpera Android Support complet 45Safari iOS Aucun support NonSamsung Internet Android Support complet 3.0
onchange
Expérimentale
Chrome Support complet 61Edge Support complet 79Firefox Aucun support NonIE Aucun support NonOpera Support complet 48Safari Aucun support NonWebView Android Support complet 50Chrome Android Support complet 38Firefox Android Aucun support Non
Notes
Aucun support Non
Notes
Notes On Firefox, the event handler property corresponding to the change event is ontypechange.
Opera Android Support complet 45Safari iOS Aucun support NonSamsung Internet Android Support complet 3.0
ontypechange
Expérimentale
Chrome Aucun support NonEdge Aucun support NonFirefox Aucun support NonIE Aucun support NonOpera ? Safari Aucun support NonWebView Android Aucun support NonChrome Android Aucun support NonFirefox Android ? Opera Android ? Safari iOS Aucun support NonSamsung Internet Android Aucun support Non
rtt
Expérimentale
Chrome Support complet 61Edge Support complet 79Firefox Aucun support NonIE Aucun support NonOpera Support complet 48Safari Aucun support NonWebView Android Support complet 50Chrome Android Support complet 38Firefox Android Aucun support NonOpera Android Support complet 45Safari iOS Aucun support NonSamsung Internet Android Support complet 3.0
saveData
Expérimentale
Chrome Support complet 65Edge Support complet 79Firefox Aucun support NonIE Aucun support NonOpera Support complet OuiSafari Aucun support NonWebView Android Support complet 65Chrome Android Support complet 65Firefox Android ? Opera Android Support complet OuiSafari iOS Aucun support NonSamsung Internet Android Support complet 9.0
type
Expérimentale
Chrome Support complet 61
Notes
Support complet 61
Notes
Notes Only supported in Chrome OS
Edge Aucun support NonFirefox Aucun support NonIE Aucun support NonOpera Aucun support NonSafari Aucun support NonWebView Android Support complet 50Chrome Android Support complet 38Firefox Android Aucun support NonOpera Android Support complet 45Safari iOS Aucun support NonSamsung Internet Android Support complet 3.0
Available in workers
Expérimentale
Chrome Support complet 61Edge Support complet 79Firefox Aucun support NonIE Aucun support NonOpera Support complet 48Safari Aucun support NonWebView Android Support complet 50Chrome Android Support complet 38Firefox Android Support complet 53Opera Android Support complet 45Safari iOS Aucun support NonSamsung Internet Android Support complet 3.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Voir les notes d'implémentation.
Voir les notes d'implémentation.
Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
connection
Expérimentale
Chrome Support complet 61Edge Support complet 79Firefox Support complet Oui
Désactivée
Support complet Oui
Désactivée
Désactivée This feature is behind the dom.netinfo.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Aucun support NonOpera Support complet OuiSafari Aucun support NonWebView Android Support complet 50Chrome Android Support complet 38Firefox Android Support complet 14
Notes
Support complet 14
Notes
Notes The Network API is enabled by default. Can be disabled using the dom.netinfo.enabled preference.
Opera Android Support complet 37Safari iOS Aucun support NonSamsung Internet Android Support complet 3.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Voir les notes d'implémentation.
Voir les notes d'implémentation.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.

Voir aussi