Задать вопрос

Как на JavaScript проверить наличие интернета — онлайн или офлайн?

Ищу решение. Сам пока пользуюсь такой функцией:

function isOnline() {
    var url = 'http://example.com/?' + Date.now(); // url любой
    var xhr = new XMLHttpRequest();
    xhr.open('GET', url, false); // sync
    try {
       xhr.send();  //  Когда нет интернета - происходит "NetworkError" и срабатывает catch{}
       return xhr.status === 200 ? true : false;
    } catch (err) {
       return false;
    }
}

Обязательное требование: поддержка IE11.

Что скажете? Может быть есть способы лучше? Какой способ используете вы?
  • Вопрос задан
  • 4346 просмотров
Подписаться 3 Средний Комментировать
Ответ пользователя Виктор Сиротин К ответам на вопрос (4)
@visirok
Заходите на мою страницу www.sirotin.eu
Ваше решение можно сделать поинтнереснее для пользователя.
Например, Network Error часто означает, что нет связи с ближайшим WiFi/Router.
Иногда это недокументированный статус 0.
Статус 503 означает, что желаемый сервер недоступен.
Соответственно, пользователя можно точнее информировать и разное советовать в зависимости от результата.
Ответ написан
Комментировать