Подтвердить что ты не робот

Как проверить тип соединения (WiFi/LAN/WWAN) с помощью HTML5/JavaScript?

Я хочу настроить конкретный веб-сайт на версию с низкой пропускной способностью, если клиент подключен через WWAN (измеренное) соединение или иным образом.

Тип подключения очень важен для того, чтобы сайт знал, должен ли он предоставлять богатый опыт или эффективный пропускной способ. Мой рабочий стол работает на дозируемом соединении, и в будущем к ним будут подключаться более настольные компьютеры через дозированные сотовые сети (включая планшетные ПК под управлением Windows 8), эффективные веб-приложения должны уважать то, что пользователь может не требовать больших подробных активов, байты-соединение.

Как проверить, подключен ли клиент через WiFi/LAN/WWAN с помощью HTML5/JavaScript?

ПРИМЕЧАНИЕ. Я не хочу явно проверять заголовки браузера (что на самом деле не является решением для настольных браузеров, которые могут подключаться к Интернету с помощью нескольких методов).

4b9b3361

Ответ 1

См. navigator.connection (с префиксом). Этот API предоставляет информацию о пропускной способности клиента.

Ответ 2

Вы не можете. Информация о том, как клиент подключен (то есть, какие технологии он использует, если он является байтом или равноценным) на сервере, не является общедоступным. Возможно, вы сможете получить трассировку маршрута (со всеми проблемами, связанными с трассировкой), если это вам поможет, но эта информация не будет доступна JavaScript.

Что может сделать с JS - это простое тестирование полосы пропускания. Загрузите файл известного размера с помощью XHR и определите время, которое вам нужно.

Платная модель соединения - это абсолютные частные данные. Он также не будет отправлен на серверы в Интернете и не будет доступен для загруженного веб-сайта. Если вам нужна эта информация, чтобы предложить клиенту настраиваемое приложение, обратитесь к пользователю напрямую. Он скажет вам, хочет ли он.


Но подождите. Последние Chrome и Firefox могут быть установлены (пользовательские предпочтения), чтобы предоставить данные экспериментального объекта navigator.connection.

Кроме того, для разработки приложений Metro Windows предлагает такую ​​информацию в Windows.Networking.Connectivity API, см. этот учебник.

Ответ 3

Возможно, вы приближаетесь к нему неправильно. Посмотрите на модель Gmail. У них есть богатый клиент, который пользователь может отключить, если страница занимает много времени для загрузки. Стандартный клиент намного легче и использует более "традиционный" веб-дизайн.
Пытаться автоматически обнаружить вещи, которые не предназначены, может привести вас к очень глубокой кроличьей дыре.

Ответ 4

Старый вопрос, но в поисках моих собственных целей я нашел это - мне еще нужно попробовать его, поэтому YMMV: https://github.com/ashanbh/detectClientSpeed.

Основополагающее понятие измерения времени для загрузки актива для получения информации о полосе пропускания является субъективным и необязательно последовательным, но, помимо API платформы для iOS/Android, это не плохой вариант. Более легкой альтернативой может быть измерение времени ping на что-то вроде google.com.