Network Information API

Этот перевод не завершён. Пожалуйста, помогите перевести эту статью с английского

Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

API Network Information позволяет определить тип интернет-подключения системы ('wifi''cellular' и т.д.). Эту информацию можно использовать, к примеру, для того, чтобы предоставлять контент большего либо меньшего разрешения в зависимости от качества соединения. Весь API состоит из интерфейса NetworkInformation, добавленного в глобальный объект Navigator как свойство Navigator.connection.

Примечание: Эта возможность доступна в Web Workers.

Примеры

Определение изменения соединения

Данный пример отслеживает изменение подключения пользователя.

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

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

connection.addEventListener('change', updateConnectionStatus);

Предварительная загрузка крупных ресурсов

The connection object is useful for deciding whether to preload resources that take large amounts of bandwidth or memory. This example would be called soon after page load to check for a connection type where preloading a video may not be desirable. If a cellular connection is found, then the preloadVideo flag is set to false. For simplicity and clarity, this example only tests for one connection type. A real-world use case would likely use a switch statement or some other method to check all of the possible values of NetworkInformation.type. Regardless of the type value you can get an estimate of connection speed through the NetworkInformation.effectiveType property.

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

Интерфейсы

NetworkInformation
Даёт возможность получить информацию о сетевом соединении, а также возможность получать события при изменении типа соединения. Невозможно создавать экземпляры данного интерфейса, для получения доступа используйте Navigator.

Спецификации

Спецификация Статус Комментарии
Network Information API
Определение 'Network Information API' в этой спецификации.
Черновик Изначальная спецификация.

Совместимость

NetworkInformation

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
NetworkInformation
Экспериментальная
Chrome Полная поддержка 61Edge Полная поддержка 79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка 48Safari Нет поддержки НетWebView Android Полная поддержка 50Chrome Android Полная поддержка 38Firefox Android Полная поддержка 31Opera Android Полная поддержка 45Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 3.0
downlink
Экспериментальная
Chrome Полная поддержка 61Edge Полная поддержка 79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка 48Safari Нет поддержки НетWebView Android Полная поддержка 50Chrome Android Полная поддержка 38Firefox Android ? Opera Android Полная поддержка 45Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 3.0
downlinkMax
Экспериментальная
Chrome Полная поддержка 61
Замечания
Полная поддержка 61
Замечания
Замечания Only supported in Chrome OS
Edge Нет поддержки НетFirefox Нет поддержки НетIE Нет поддержки НетOpera Нет поддержки НетSafari Нет поддержки НетWebView Android Полная поддержка 50Chrome Android Полная поддержка 38Firefox Android Нет поддержки НетOpera Android Полная поддержка 45Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 3.0
effectiveType
Экспериментальная
Chrome Полная поддержка 61Edge Полная поддержка 79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка 48Safari Нет поддержки НетWebView Android Полная поддержка 50Chrome Android Полная поддержка 38Firefox Android Полная поддержка ДаOpera Android Полная поддержка 45Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 3.0
onchange
Экспериментальная
Chrome Полная поддержка 61Edge Полная поддержка 79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка 48Safari Нет поддержки НетWebView Android Полная поддержка 50Chrome Android Полная поддержка 38Firefox Android Нет поддержки Нет
Замечания
Нет поддержки Нет
Замечания
Замечания On Firefox, the event handler property corresponding to the change event is ontypechange.
Opera Android Полная поддержка 45Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 3.0
ontypechange
Экспериментальная
Chrome Нет поддержки НетEdge Нет поддержки НетFirefox Нет поддержки НетIE Нет поддержки НетOpera ? Safari Нет поддержки НетWebView Android Нет поддержки НетChrome Android Нет поддержки НетFirefox Android ? Opera Android ? Safari iOS Нет поддержки НетSamsung Internet Android Нет поддержки Нет
rtt
Экспериментальная
Chrome Полная поддержка 61Edge Полная поддержка 79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка 48Safari Нет поддержки НетWebView Android Полная поддержка 50Chrome Android Полная поддержка 38Firefox Android Нет поддержки НетOpera Android Полная поддержка 45Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 3.0
saveData
Экспериментальная
Chrome Полная поддержка 65Edge Полная поддержка 79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка ДаSafari Нет поддержки НетWebView Android Полная поддержка 65Chrome Android Полная поддержка 65Firefox Android ? Opera Android Полная поддержка ДаSafari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 9.0
type
Экспериментальная
Chrome Полная поддержка 61
Замечания
Полная поддержка 61
Замечания
Замечания Only supported in Chrome OS
Edge Нет поддержки НетFirefox Нет поддержки НетIE Нет поддержки НетOpera Нет поддержки НетSafari Нет поддержки НетWebView Android Полная поддержка 50Chrome Android Полная поддержка 38Firefox Android Нет поддержки НетOpera Android Полная поддержка 45Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 3.0
Available in workers
Экспериментальная
Chrome Полная поддержка 61Edge Полная поддержка 79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка 48Safari Нет поддержки НетWebView Android Полная поддержка 50Chrome Android Полная поддержка 38Firefox Android Полная поддержка 53Opera Android Полная поддержка 45Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 3.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Совместимость неизвестна  
Совместимость неизвестна
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Смотрите замечания реализации.
Смотрите замечания реализации.
Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
connection
Экспериментальная
Chrome Полная поддержка 61Edge Полная поддержка ≤79Firefox Полная поддержка Да
Отключено
Полная поддержка Да
Отключено
Отключено This feature is behind the dom.netinfo.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Нет поддержки НетOpera Полная поддержка ДаSafari Нет поддержки НетWebView Android Полная поддержка 50Chrome Android Полная поддержка 38Firefox Android Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания The Network API is enabled by default. Can be disabled using the dom.netinfo.enabled preference.
Opera Android Полная поддержка 37Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 3.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Смотрите замечания реализации.
Смотрите замечания реализации.
Пользователь должен сам включить эту возможность.
Пользователь должен сам включить эту возможность.

See also