Страницы

Поиск по вопросам

вторник, 17 декабря 2019 г.

Как определить скорость интернет-соединения? (JS)

#javascript #jquery


Подскажите пожалуйста как с помощью JS определить скорость интернета?

(Я попробовал способ следующий, но он иногда рассчитывает некорректно: ,засекаю текущее
время (t1), беру картинку, загружаю ее,затем опять смотрю время (t2), высчитываю разницу
(t2-t1) ну и дальше высчитываю скорость в кбит/с)
    


Ответы

Ответ 1



Стандартный способ пока отсутствует. Существует connection api но оно пока работает только для некоторых мобильных браузеров. Так что остаётся грузить любой объёмный объект и считать время загрузки, что вы уже и делаете. Но тут есть проблемы — если используете небольшие объекты, то будет большая погрешность в измерениях, если большие, а у пользователя плохой интернет, вы будете долго ждать результата, а пользователю будет большой трафик. Также можно грузить много небольших картинок параллельно подсчитывая среднюю скорость и останавливаясь, когда погрешность измерения будет достаточно небольшой. Но это всё имеет смысл, если вы именно считаете скорость соединения пользователя. Если вы её измеряете для того, чтобы отдавать ему соответствующий контент (более высокого или низкого качества), лучше мерять его по факту, и переключать по ситуации (у пользователя скорость может изменится в любой момент).

Ответ 2



Отключить кэширование. Отключить сжатие. Дальше по схеме из вопроса. вы будете долго ждать результата Сервер может разорвать соединение при необходимости. Или просто передавать chunked и закончить когда посчитает нужным.

Комментариев нет:

Отправить комментарий