Network Information API

Traducción en progreso.

Esta es una tecnología experimental
Comprueba la Tabla de compabilidad de navegadores cuidadosamente antes de usarla en producción.

La Network Information (Información de red) API provee información sobre el sistema de conexión en términos genéricos de tipos de conexión (ej., 'wifi', 'cellular', etc.). Esta puede ser usada para elegir contenido en alta definición o contenido  baja definición basándose en la conexión del usuario. Toda la API consiste en la adición de la NetworkInformation interfaz y una única propiedad para la Navigator interfaz: Navigator.connection.

Nota: Esta característica está disponible en Web Workers.

Examples

Detectar cambios de conexiónThis example watches for changes to the user's connection.

var conexion = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
var tipo = connection.effectiveType;

function updateConnectionStatus() {
  console.log("Connection type changed from " + tipo + " to " + conexion.effectiveType);
  tipo = conexion.effectiveType;
}

conexion.addEventListener('change', updateConnectionStatus);

Precargar recursos grandes

El objeto de conexión es muy útil por ir decidiendo entre precargar recursos que ocupan mucho ancho de banda o memoria. Este ejemplo puede ser llamado justo después de que la página cargue para verificar el tipo de conexión donde precargar un video tal vez no sea lo deseado.Si se detecta la conexión de un celular, entonces el preloadVideo flag está seteado en false. Para simplificación y claridad, este ejemplo sólo testea un tipo de conexión. Una real-word usa case probablemente una declaración de switch o otro método para verificar todos los posibles valores de NetworkInformation.type. 

en caso usaría una declaración de switch o algún otro método para verificar todos los valores posibles de
use case would likely use a switch statement or some other method to check all of the possible values of NetworkInformation.type.
Independientemente del valor de tipo, puede obtener una estimación de la velocidad de conexión a través de la propiedad NetworkInformation.effectiveType.

let precargarVideo = true;
var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
if (connection) {
  if (connection.effectiveType === 'slow-2g') {
    precargarVideo = false;
  }
}

Interfaces

NetworkInformation
Provee información sobre la conexión de un dispositivo si está usándose para cominicarse con la red y proveer un tipo de scripts para ser notificado si el tipo de conexión cambia. La intefaz de NetworkInformation no puede ser inicializada. En lugar de esto, se accede a través de la interfaz Navigator.

Especificaciones

Especifiación Estado Comentario
Network Information API
La definición de 'Network Information API' en esta especificación.
Draft Initial specification

Compatibilidad en Navegadores

NetworkInformation

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
NetworkInformation
Experimental
Chrome Soporte completo 61Edge Soporte completo 79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo 48Safari Sin soporte NoWebView Android Soporte completo 50Chrome Android Soporte completo 38Firefox Android Soporte completo 31Opera Android Soporte completo 45Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 3.0
downlink
Experimental
Chrome Soporte completo 61Edge Soporte completo 79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo 48Safari Sin soporte NoWebView Android Soporte completo 50Chrome Android Soporte completo 38Firefox Android ? Opera Android Soporte completo 45Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 3.0
downlinkMax
Experimental
Chrome Soporte completo 61
Notas
Soporte completo 61
Notas
Notas Only supported in Chrome OS
Edge Sin soporte NoFirefox Sin soporte NoIE Sin soporte NoOpera Sin soporte NoSafari Sin soporte NoWebView Android Soporte completo 50Chrome Android Soporte completo 38Firefox Android Sin soporte NoOpera Android Soporte completo 45Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 3.0
effectiveType
Experimental
Chrome Soporte completo 61Edge Soporte completo 79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo 48Safari Sin soporte NoWebView Android Soporte completo 50Chrome Android Soporte completo 38Firefox Android Soporte completo SiOpera Android Soporte completo 45Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 3.0
onchange
Experimental
Chrome Soporte completo 61Edge Soporte completo 79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo 48Safari Sin soporte NoWebView Android Soporte completo 50Chrome Android Soporte completo 38Firefox Android Sin soporte No
Notas
Sin soporte No
Notas
Notas On Firefox, the event handler property corresponding to the change event is ontypechange.
Opera Android Soporte completo 45Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 3.0
ontypechange
Experimental
Chrome Sin soporte NoEdge Sin soporte NoFirefox Sin soporte NoIE Sin soporte NoOpera ? Safari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte NoFirefox Android ? Opera Android ? Safari iOS Sin soporte NoSamsung Internet Android Sin soporte No
rtt
Experimental
Chrome Soporte completo 61Edge Soporte completo 79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo 48Safari Sin soporte NoWebView Android Soporte completo 50Chrome Android Soporte completo 38Firefox Android Sin soporte NoOpera Android Soporte completo 45Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 3.0
saveData
Experimental
Chrome Soporte completo 65Edge Soporte completo 79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo SiSafari Sin soporte NoWebView Android Soporte completo 65Chrome Android Soporte completo 65Firefox Android ? Opera Android Soporte completo SiSafari iOS Sin soporte NoSamsung Internet Android Soporte completo 9.0
type
Experimental
Chrome Soporte completo 61
Notas
Soporte completo 61
Notas
Notas Only supported in Chrome OS
Edge Sin soporte NoFirefox Sin soporte NoIE Sin soporte NoOpera Sin soporte NoSafari Sin soporte NoWebView Android Soporte completo 50Chrome Android Soporte completo 38Firefox Android Sin soporte NoOpera Android Soporte completo 45Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 3.0
Available in workers
Experimental
Chrome Soporte completo 61Edge Soporte completo 79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo 48Safari Sin soporte NoWebView Android Soporte completo 50Chrome Android Soporte completo 38Firefox Android Soporte completo 53Opera Android Soporte completo 45Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 3.0

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Compatibilidad desconocida  
Compatibilidad desconocida
Experimental. Esperar que el comportamiento cambie en el futuro.
Experimental. Esperar que el comportamiento cambie en el futuro.
Ver notas de implementación.
Ver notas de implementación.
Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
connection
Experimental
Chrome Soporte completo 61Edge Soporte completo 79Firefox Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the dom.netinfo.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo SiSafari Sin soporte NoWebView Android Soporte completo 50Chrome Android Soporte completo 38Firefox Android Soporte completo 14
Notas
Soporte completo 14
Notas
Notas The Network API is enabled by default. Can be disabled using the dom.netinfo.enabled preference.
Opera Android Soporte completo 37Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 3.0

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Experimental. Esperar que el comportamiento cambie en el futuro.
Experimental. Esperar que el comportamiento cambie en el futuro.
Ver notas de implementación.
Ver notas de implementación.
El usuario debe de habilitar explícitamente esta característica.
El usuario debe de habilitar explícitamente esta característica.

Véase también