У меня есть следующий поток в моем приложении:
Поток работает для меня, но я не доволен тем, как я решил точку 5. В этот момент, после того как работник службы уволен, в следующей строке кода приложения я запускаю метод setInterval
чтобы периодически проверять, есть ли новая строка в таблице responses
.
Есть ли способ отправить событие из синхронизации службы-работника в приложение, чтобы он знал, что данные ждут его?
Или, может быть, есть событие на indexeddb, на которое я могу подписаться на прослушивание изменений?
Вы должны иметь возможность настроить канал сообщений между ServiceWorker и вашим приложением. На высоком уровне связь с приложением в ServiceWorker будет происходить на одном порту канала, а связь с ServiceWorker обратно на приложение будет происходить на другом порту канала. Вместо опроса для обновленных данных ваш ServiceWorker должен просто сообщить вашему приложению, что ответ успешно сохранен.
Наткнулся на это сообщение в блоге, которое должно помочь вам начать работу в правильном направлении: https://ponyfoo.com/articles/serviceworker-messagechannel-postmessage