Как проверить тип соединения (WiFi/LAN/WWAN) с помощью HTML5/JavaScript?
Я хочу адаптировать конкретный веб-сайт к версии с низкой пропускной способностью, если клиент подключен через WWAN (измеренное) соединение или иным образом.
Тип соединения важен для сайта, чтобы знать, должен ли он обеспечить богатый опыт или эффективность использования полосы пропускания. Мой рабочий стол работает по измеренному соединению, и в будущем все больше настольных компьютеров будут подключаться через измеренные сотовые сети (включая планшетные ПК с Windows 8), эффективные веб-приложения должны учитывать, что пользователю может не потребоваться высокодетализированный ресурс с платой за байт-соединение.
Как проверить, подключен ли клиент через WiFi/LAN/WWAN с использованием HTML5/JavaScript?
ПРИМЕЧАНИЕ. Я не хочу явно проверять заголовки браузера (что на самом деле не является решением для настольных браузеров, которые могут подключаться к Интернету несколькими способами).
4 ответа
Увидеть navigator.connection
(Приставка). Этот API предоставляет информацию о пропускной способности клиента.
Ты не можешь Информация о том, как клиент подключен (т. Е. Какие технологии он использует, если он платный или байтовый) к серверу, не является общедоступной. Возможно, вы сможете получить маршрут трассировки (со всеми проблемами, связанными с трассировкой), если это вам поможет, но эта информация не будет доступна JavaScript.
Что можно сделать с JS - это просто тестирование полосы пропускания. Загрузите файл известного размера через XHR и измерьте необходимое время.
Платная модель соединения - это абсолютные личные данные. Оно не будет отправлено на серверы в Интернете и недоступно для загруженного веб-сайта. Если вам нужна эта информация, чтобы предложить клиенту собственное приложение, спросите пользователя напрямую. Он скажет тебе, если захочет.
Пока, подожди. Последние Chrome и Firefox могут быть установлены (предпочтения пользователя), чтобы предоставить эти данные на экспериментальной navigator.connection
объект.
Кроме того, для разработки приложений Metro Windows предоставляет такую информацию на Windows.Networking.Connectivity
API, см. Этот учебник.
Возможно, вы подходите к этому неправильно. Посмотрите на модель Gmail. У них есть богатый клиент, от которого пользователь может отказаться, если загрузка страницы занимает много времени. Стандартный клиент намного легче и использует более "традиционный" веб-дизайн.
Попытка автоматического обнаружения вещей, которых не должно быть, может привести вас в очень глубокую кроличью нору.
Старый вопрос, но в поиске своих собственных целей я нашел это - я еще не попробовал это, и поэтому YMMV: https://github.com/ashanbh/detectClientSpeed.
Понятие измерения времени загрузки ресурса для получения информации о пропускной способности является субъективным и необязательно последовательным, но, если не считать встроенного API платформы для iOS/Android, это неплохой вариант. Более легкая альтернатива может заключаться в измерении времени пинга для чего-то вроде google.com.