Что именно происходит (с технической точки зрения) при каждом открытии PWA? - PullRequest
0 голосов
/ 25 февраля 2020

Я пытался найти некоторую официальную документацию по этому вопросу, но не могу найти что-то действительно конкретное c.

Что именно происходит (с технической точки зрения) каждый раз, когда пользователь открывает PWA на Android? На iOS?

Я спрашиваю, потому что кажется, что процесс отличается, когда я не прикасался к PWA в течение пары дней по сравнению с тем, когда я открывал приложение 20 минут go. Как Android (или iOS в этом отношении) решает, когда обновить sh страницу против отображения того, что было в памяти (и / или что было кэшировано работником службы) с момента последнего открытия PWA ? Делает ли он что-нибудь еще, о чем я хотел бы знать, например, автоматически очищать куки / кеш (после определенного периода времени)? et c.

Я чувствую, что делаю то, о чем должен знать, но не могу найти официальных документов, которые имеют отношение к делу. Я понимаю жизненный цикл сервисного работника (по большей части), но мне кажется, что происходит что-то еще.

1 Ответ

0 голосов
/ 27 февраля 2020

У меня есть общая статья о работниках сферы обслуживания, и я погружаюсь в жизненный цикл работника службы, который является очень глубокой темой c.

https://love2dev.com/blog/what-is-a-service-worker/

Если вы открываете PWA после 20 минут простоя, разные браузеры и операционные системы обрабатывают это по-разному. Для некоторых служащий может все еще находиться в каком-то живом, но спящем состоянии. В других случаях он полностью мертв.

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

Теперь на iOS Apple очень агрессивна с очисткой неиспользуемого кэша через несколько дней. У вас есть около 14 дней, прежде чем все будет уничтожено, поэтому вы начинаете с нуля с кэшированием. Вот почему вы всегда должны проверять состояние своего кэша, когда сервисный работник становится активным, и т. Д. c.

Поэтому никогда не предполагайте, что ваш контент идеально кэшируется. Если вы знаете, что ваше приложение используется ежедневно, вы можете немного расслабиться по сравнению с обычным приложением. Например, бизнес-приложение будет использоваться 5 дней в неделю (теоретически). Таким образом, вы можете чувствовать себя хорошо iOS не очистил кеш.

Но даже если ресурсы не кэшированы и пользователь подключен к сети, ваше приложение все равно должно работать. Конечно, если вы хотите, чтобы через 30 дней после последнего использования вы работали в автономном режиме, вы вроде как наигрались iOS :( Просто один из Apple, много недостатков, IMO.

...