Как сохранить список запросов и отправить их в MySQL при подключении к сети?

Я пытаюсь создать веб-приложение, которое будет работать в автономном режиме.
Я нашел JS Service Worker и реализовал его в своем приложении для хранения некоторых статических страниц.

Теперь я хотел бы создать HTML-ФОРМУ, в которой пользователь заполняет данные, которые будут сохранены в кеше, если пользователь находится в автономном режиме... но напрямую отправляется в mysql, когда пользователь находится в сети.

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

Как я могу сохранить строку запроса в кеш, а затем проверить, подключен ли он к сети, и отправить ее с помощью Ajax? для php и mySQL.

Во-первых, как мне сохранить строку запроса в кэше?
Во-вторых... как узнать, когда он в сети, а затем получить строку запроса из кэша?

Это то, что я получил для кэширования своих страниц:

importScripts('cache-polyfill.js');

self.addEventListener('install', function(e) {
e.waitUntil(
  caches.open('offlineList').then(function(cache) {
    return cache.addAll([
      '/app/offline_content/'
    ]);
  })
);
});

self.addEventListener('fetch', function(event) {
console.log(event.request.url);

event.respondWith(
  caches.match(event.request).then(function(response) {
    return response || fetch(event.request);
  })
);
});

ИЗМЕНИТЬ

Сейчас я читаю HTML/JS localStorage..


person Björn C    schedule 10.02.2021    source источник


Ответы (1)


Ну, я решил это, добавив данные в localStorage:

//ADD DATA 
localStorage.setItem(key, JSON.stringify(value));

Затем я проверяю подключение к Интернету:

//CHECK INTERNET CONNECTION
const checkOnlineStatus = async () => { //console.log('CHECKING INTERNET..');
    try {
      const online = await fetch("/img.gif");
      return online.status >= 200 && online.status < 300; // either true or false
    } catch (err) {
      return false; // definitely offline
    }
};

const result = await checkOnlineStatus();
result ? updateMysql() : console.log('NO INTERNET..');

В функции updateMysql() я загружаю все localStorage и отправляю их с помощью ajax на php и mySQL.

var query = JSON.parse(localStorage.getItem(key));
person Björn C    schedule 25.02.2021