Плагин Jquery Для Обработки Онлайн/Оффлайн Событий

Итак, мне нужна была поддержка онлайн/оффлайн событий в браузерах (напомню, что согласно проекту html5 они возникают при появлении/исчезновении соединения соответственно).

В настоящее время Mozilla и IE8 поддерживает эти события.

А это уже много.

Все бы ничего, но онлайн-мероприятие не дает 100% гарантии, что пользователь онлайн.

Он гарантирует, что какое-то соединение есть, но не подключение к интернету (если кто не видел, пояснительное видео об этой теме).

Поэтому необходимы дополнительные проверки доступности внешнего мира.

Офлайн-событие гарантирует отсутствие соединения, что в некоторых случаях может быть удобно; разработчику не нужно выполнять никаких дополнительных действий.

Я не думаю, что реализация этих событий со временем изменится, поэтому если мы хотим точно знать, есть связь или нет, нам нужно добавить реализацию самим.

С Мозиллой и е8 определились (всё хорошо, но надо немного подправить), а что делать с остальными браузерами, в которых этих событий пока нет? Мы определим их сами во время инициализации страницы и после Ajax-запросов.

И мы сделаем это, используя jquery c триггер/привязку в качестве плагина.



Основные идеи плагина

0) Удобный интерфейс.



$(document.body).

bind('xonline', function(event) { .

});



$(document.body).

bind('xoffline', function(event) { .

});

Я использую xonline, xoffline, потому что онлайн и офлайн уже реализованы в браузере, и мы, по сути, делаем надстройку над этими событиями.

1) Естественно, плагин должен поддерживать онлайн-, офлайн-события для браузеров, в которых есть эти события.

При работе в сети эти браузеры проходят дополнительную проверку на подключение к Интернету.

В автономном режиме мы ничего не проверяем.

2) Для браузеров, не поддерживающих данные действия, проверка изменения состояния сети происходит после ajax-запросов.

Допустим, соединение было, но запрос не увенчался успехом.

В этом случае делаем дополнительную проверку соединения как в пункте 1 и при необходимости запускаем триггер('xoffline').



Как использовать?

Все просто, создаем обработчики двух событий xonline, xoffline. Все остальное плагин сделает сам.

Вы можете увидеть, как работает плагин, открыв пример , а затем отключается от сети.

В ie 8 и Firefox 3.5 xoffline будет работать, и прямоугольник будет перекрашен.

В Google Chrome, Opera, Safari и более ранних версиях ie и Mozilla помимо отключения от сети вам также необходимо выполнить неудачный запрос для запуска автономного события.

Если вам жизненно необходимо постоянно следить за соединением, то плагин поддерживает метод $.

checkWebstatus(time) (время — это количество секунд).

Этот метод в браузерах, которые изначально не поддерживают события онлайн/оффлайн, проверяет соединение каждые несколько секунд. Пример с checkWebStatus Успешно протестировано в Mozilla 3.5.3, IE8, IE6, Chrome, Opera 10. Загрузите плагин Пример Пример с дополнительной проверкой Внутреннее устройство плагина Обновление 10.10.2009 Исправлен плагин: 1) Исправлена ошибка с проверкой состояния сети в автономном режиме.

2) События переименованы с xonline, xoffline в более понятные trueonline, trueoffline. 3) Удалены методы и переменные из окна.

4) Добавлена возможность настройки плагина.

5) Плагин имеет ваша собственная страница.

6) Теперь он называется TrueOnline плагин :) Спасибо всем за мудрые советы и тестирование.

Теги: #xonline плагин #онлайн-событие #оффлайн-событие #jQuery

Вместе с данным постом часто просматривают: