— Pixels Commander

[ In English, На русском ]

OnlineJS — легковесная и простая библиотека для работы со статусом интернет — соединения

При разработке мобильных Web приложений часто встречается задача определения статуса интернет — соединения, задача небольшая и каждый решает ее удобным для себя способом, Online JS — это надежная подборка лучших практик на тему, к тому же весьма небольшая по размеру и простая в использовании.

Демо

Пользоваться библиотекой просто — добавьте online.min.js в проект и в любом удобном месте проверяйте:
window.onLine === true

Так же вы можете реагировать на подключение или отключение от интернета задав обработчики window.onLineHandler / window.offLineHandler.

Из оптимизаций используются:

  • проверка соединения в фоновом режиме,
  • запрос лишь заголовков для минимизации траффика,
  • слушание событий online, offline, их дополнительная проверка.

Многие справшивают: «Почему бы не обойтись navigator.onLine для проверки соединения?». Про это свойство и его коварство написано немало. Главная проблема — свойство реализовано не консистентно среди браузеров и зачастую отражает лишь наличие подключения к локальной сети, а в некоторых версиях FireFox зависит только от включения / выключения режима автономного просмотра.

Чистый navigator.onLine для критически важных задач не подходит. А Online JS подходит, потому что использует это свойство и соответствующие события только как один из механизмов и затем перепроверяет статус соединения. Вы можете положиться на Online JS.

Репозиторий на GitHub

  • http://anykeytocreate.blogspot.com/ Eugene Krevenets (Hyzhak)

    смотрю проверка online дергает «http://www.pixelsresearch.com/online.php», не боишься, что популярность положит сайт? 🙂

  • Аноним

    Если не хочешь зависеть от сайта — можно переназначить window.onlineCheckURL
    А траффика я не боюсь — запрос статичный, если что возьму сервер помощнее 😉

  • pride

    Однозначно не самое популярное решение дергать страничку по таймеру. В чем плюсы?

  • Аноним

    Какое решение на ваш взгляд будет работать лучше?

  • Morozzov

    Помню в одном AIR приложении через URLLoader по таймеру дергал google.com))

  • Аноним

    Это заманчивый вариант и для JavaScript, с удовольствием бы поступил так. Жаль, что кросс — доменная политика JS требует специфических хедеров в ответе сервера, выставить которые можно только имея контроль над сервером.

  • Raul Padilla Calderon

    it work fine, thx