no.line
v0.0.1
Published
Real online/offline events
Readme
Real online и offline events
В некоторых современных браузерах существуют специальные события online и offline.
Но, к сожалению, они работают не так, как хотелось бы.
В Firefox и IE событие offline случается, когда пользователь вручную выберет Work Offline в меню.
В Chrome offline означает, что нет ни одного активного сетевого интерфейса.
Но даже если компьютер подключен к Wi-Fi сети, это не значит, что есть доступ в интернет.
Хотя Chrome при этом будет считать, что он online.
Поэтому, чтобы на самом деле знать, есть ли доступ в интернет, приходится пинговать какой-нибудь урл и следить за ответами.
Что и делает эта простая библиотека:
no.line.init({
url: '/ping/',
interval: 10000
});
$(window)
.on('no-online no-offline', function(e) {
var is_online = (e.type === 'no-online');
...
});В no.line.init можно передать url, который нужно пинговать и interval между пингами.
Дефолтные параметры:
{
url: '/',
interval: 5000
}После вызова no.line.init можно подписаться на события no-online и no-offline, генерируемые на window.
Кроме того, библиотека поддерживает нативные события online/offline и Page Visibility API.
Пингование останавливается, если страница не в фокусе или же в оффлайне.
