Online и Offline

Online и Offline.

У объекта Navigator появилось новое свойство под названием onLine, указывающее на текущее состояние подключения. С этим свойством связаны два события, которые срабатывают при изменении значения свойства. Свойство и события не принадлежат объекту ApplicationCache, но весьма полезны для работы с этим API:

- online. Срабатывает, когда значение свойства onLine меняется на true;

- offline. Срабатывает, когда значение свойства onLine меняется на false.

Далее представлен пример использования этих событий.

Листинг 16.7. Проверка состояния подключения

Function initiate(){

Databox=document. getElementById(‘databox’);

Window. addEventListener(‘online’, function(){ state(1); }, false);

Window. addEventListener(‘offline’, function(){ state(2); }, false);

}

Function state(value){ switch(value){ case 1:

Databox. innerHTML+=’<br>Подключение к Сети есть’; break; case 2:

Databox. innerHTML+=’<br>Подключения к Сети нет’; break;

}

}

Window. addEventListener(‘load’, initiate, false);

В коде из листинга 16.7 мы использовали анонимные функции для обработки событий и отправки значения функции state(), которая выводит соответствующее сообщение внутри элемента databox. События будут срабатывать при каждом изменении значения свойства onLine.

Невозможно гарантировать, что значение свойства всегда будет правильным. Прослушивание этих событий на настольном компьютере, вероятно, не даст никакого результата, даже если отключить компьютер от Интернета. Для тестирования данного примера на ПК мы рекомендуем использовать настройку Work Offline (Работать автономно), доступную в Firefox.

Используйте те же файлы HTML и CSS, что и в предыдущем примере. Скопируйте код из листинга 16.7 в файл cache. js. Используя возможности Firefox, сотрите кэш вашего веб-сайта, а затем загрузите это приложение. Для тестирования событий можно использовать настройку Work Offline (Работать автономно) в меню Firefox. Каждый раз, когда вы щелкаете на этом пункте меню, рабочие условия меняются и внутри элемента databox выводится новое сообщение.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *