JS властивість Event.online


Загальний опис

Подія online використовується для визначення, коли браузер відновлює підключення до мережі після того, як воно було втрачено. Це корисний інструмент для веб-додатків, які повинні реагувати на зміни в мережевому стані, дозволяючи їм знову синхронізувати дані або відновити мережеві операції.

Щоб використовувати цю подію, обробник подій додається до об'єкта window, який викликається, коли з'єднання з інтернетом знову стає доступним. Це дозволяє веб-додаткам автоматично оновлювати свій стан, надсилати раніше відкладені запити до сервера або повідомляти користувача про повернення онлайн.

Приклад базового використання:

window.addEventListener('online', function(event) {
  console.log('Інтернет-з\'єднання відновлено.');
});

У цьому випадку, коли браузер відновлює підключення до мережі, у консолі з'являється повідомлення. Замість цього можна виконати інші дії, наприклад, оновити інтерфейс користувача або надіслати збережені дані на сервер.

Подія online є важливою складовою для створення додатків, що підтримують офлайн-режим. Вона дозволяє додатку автоматично відновлювати свою роботу, коли користувач знову підключається до мережі. Наприклад, якщо додаток намагався відправити дані в режимі офлайн і не зміг цього зробити, подія online може бути використана для повторного надсилання даних при відновленні з'єднання.

Використання цієї події може включати функції на кшталт синхронізації даних між локальним сховищем і сервером, оновлення інтерфейсу користувача або виконання будь-яких мережевих запитів, які були призупинені через відсутність з'єднання.

Ось приклад використання подій offline та online:

window.addEventListener('online', function() {
  console.log('Ви знову в мережі.');
});

window.addEventListener('offline', function() {
  console.log('Інтернет-з\'єднання втрачено.');
});

Це простий спосіб відстежувати, коли користувач втрачає або відновлює доступ до інтернету, і реагувати на ці події відповідним чином. Важливою особливістю події online є те, що вона спрацьовує не тільки при відновленні з'єднання, але й коли браузер вважає, що підключення до інтернету є стабільним і працездатним.

автор: Bond

Порада

Не завжди слід довіряти події online, особливо у випадках нестабільних з'єднань або при перемиканні між мобільними мережами. Варто додатково перевіряти мережеві запити на успішність, щоб упевнитись, що з'єднання справді стабільне.

автор: Bond
Порада

Використання події online можна поєднувати з автоматичним оновленням інтерфейсу користувача. Наприклад, при відновленні з'єднання ви можете відобразити актуальні дані або повідомити користувача, що дані були успішно синхронізовані з сервером.

автор: Bond
Порада

Інколи подія online може спрацювати, навіть якщо інтернет-з'єднання слабке або ненадійне. Щоб впевнитись у справжній доступності мережі, можна відправити тестовий запит на сервер, наприклад, перевіривши статус відповіді.

автор: Bond

Синтаксис

window.addEventListener('online', function(event) {
  // ваш код тут
});

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
66 57 11.1 53 16
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
66 66 57 11.3
Підтримка: серверні переглядачі
Переглядач Node.js Deno
15.0.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

Цей приклад дозволяє користувачеві вводити дані в форму і намагатися їх надіслати на сервер. Якщо користувач перебуває в офлайн-режимі, дані зберігаються в локальному сховищі, і при відновленні інтернет-з'єднання користувач отримує можливість надіслати збережені дані за допомогою кнопки. Цей приклад ідеально підходить для демонстрації, як події online та offline можуть допомагати у створенні додатків, що підтримують офлайн-режим.

автор: Bond

У цьому прикладі після відновлення з'єднання додаток автоматично надсилає збережені в локальному сховищі дані на сервер для синхронізації. Це підходить для додатків, що працюють з тимчасовим офлайн-режимом і потребують синхронізації при поверненні в мережу.

window.addEventListener('online', function() {
  console.log('З\'єднання відновлено. Спроба повторної синхронізації даних...');
  const data = JSON.parse(localStorage.getItem('offlineData'));
  if (data) {
    // Відправляємо збережені дані на сервер
    fetch('/save', {
      method: 'POST',
      body: JSON.stringify(data),
      headers: {
        'Content-Type': 'application/json'
      }
    }).then(response => response.json())
      .then(data => {
        console.log('Дані успішно синхронізовані:', data);
        localStorage.removeItem('offlineData');
      })
      .catch(error => console.error('Помилка синхронізації:', error));
  }
});
автор: Bond

Цей приклад показує, як при відновленні з'єднання перевіряти реальну доступність мережі. Використовуючи тестовий запит, додаток перевіряє, чи можна отримати відповідь від сервера, що гарантує наявність робочого з'єднання. Це корисно для додатків з нестабільним інтернетом.

window.addEventListener('online', function() {
  console.log('Перевірка доступності ресурсу...');
  
  // Перевіряємо реальну доступність мережі, роблячи запит
  fetch('https://jsonplaceholder.typicode.com/posts/1')
    .then(response => {
      if (response.ok) {
        console.log('З\'єднання стабільне. Можна продовжувати роботу.');
      } else {
        console.log('Мережа доступна, але ресурс недоступний.');
      }
    })
    .catch(error => console.error('Помилка мережі:', error));
});
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід