Запуск фоновых процессов на веб-сайтах
Мне интересно запускать фоновые процессы, когда пользователи заходят на сайт. У меня очень широкий вопрос, но, например, я хотел бы опрашивать JSON API каждую минуту или около того и отправлять пользователю веб-уведомление каждый раз, когда меняется ответ от JSON API. Возможно ли это с работниками сферы обслуживания? Как я могу сделать это?
Если это возможно, то возможно ли запустить файл WebAssembly в работнике службы, чтобы приложение работало, даже если веб-сайт не открыт?
Или я могу запустить сервисного работника, чтобы получить последнюю версию сайта и кэшировать ее, чтобы сайт сразу загружался при следующем посещении?
1 ответ
Невозможно зарегистрировать постоянный фоновый процесс, который продолжается бесконечно после того, как пользователь заходит на веб-сайт.
Можно зарегистрировать работника службы при посещении веб-сайта. Работник службы не будет работать большую часть времени, но его может "разбудить" событие, такое как входящее push-уведомление, даже если у пользователя в данный момент нет открытой страницы, связанной с вашим веб-приложением.
По замыслу, когда работник службы просыпается подобным образом, он будет работать только в течение короткого периода времени, прежде чем его завершат. Также ожидается, что он покажет пользователю уведомление о том, что что-то происходит. Служащие, которые проснулись через push
события, которые не показывают уведомления, могут оказаться отключенными браузером.