Как я могу обойти кеш сервис-воркера? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть прогрессивное веб-приложение . на домашней странице у меня есть модальный журнал. Если пользователь входит в систему, приложение перезагружается, и теперь вместо кнопки входа сервер отображает профиль пользователя. Теперь проблема заключается в том, что когда я реализовал pwa, он кэширует домашнюю страницу и все, что на ней, поэтому новая страница с сервера не отображается после входа пользователя в систему. Бэкэнд моего приложения находится в Nodejs (REST API) и используется javascript для использования API, но я использую e js для рендеринга страниц. Как я могу это решить? На данный момент я решил не кэшировать домашнюю страницу, где у меня есть модальный вход. После этого я понял, что приложение теперь не соответствует требованиям для установки PWA.

Ответы [ 2 ]

1 голос
/ 12 июля 2020

Можно кешировать все в сервис воркере. Когда вам нужно отобразить различный контент для аутентифицированного пользователя и неаутентифицированного пользователя, вы можете отобразить это по мере необходимости либо в коде пользовательского интерфейса, либо даже в сервисном работнике.

Типичным примером может быть отображение / скрытие логина, выход и ссылка на профиль в шапке. Все это можно сделать с помощью нескольких строк кода во время загрузки страницы. Это в основном примеры classList. [Add | remove | toggle]. В профиле может использоваться простой шаблон и установка внутреннего HTML оболочки. В конце концов, это не так уж и сложно, я все время так делаю для приложений.

1 голос
/ 10 июля 2020

Похоже, вам не следует настраивать своего сервис-воркера на кэширование обычного HTML. Вместо этого вы можете использовать сервис-воркера, который всегда будет go подключаться к сети, когда он подключен, и будет отображать пользовательское сообщение «Извините, вы не в сети» HTML при сбое запроса навигации.

Вот живой пример следования этому шаблону:

https://googlechrome.github.io/samples/service-worker/custom-offline-page/

Выполнения этого будет достаточно для выполнения требований установки PWA «добавить на рабочий стол».

...