Что произойдёт с PWA-приложением, если очистить кэш и другие временные файлы браузера?

Начал изучать технологию PWA, и первый же вопрос такой: окажется ли вся эта магия с Service Worker-ами и работой в оффлайн бесполезной, если просто очистить кэш браузера (например с помощью CCleaner)?

С точки зрения логики я рассуждал так: браузерный JavaScript не может работать с файлами на компьютере (единственное "окно" - <input type="file">), потому браузерные приложения не могут создать никаких локальных баз данных и прочих файлов, сохраняющих состояние приложения. Следовательно, работа через оффлайн возможно благодаря пока не известным мне манипуляций с временными файлами браузера. Но все эти файлы можно очищать даже без помощи стороннего софта через браузер, что пользователь может в любой момент сделать.


Ответы (1 шт):

Автор решения: Daniil Loban

При большом желании почистить можно все.

Поэтому если бизнес или бизнес логика очень сильно зависят от кэша, лучше подумать об иных вариантах. Сохранение идет с использованием IndexedDB и может быть удалено как с помощью самих браузеров так и с помощью того же ССleaner.

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

Физические пути к IndexedDB для разных операционных систем:

Windows:

%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\IndexedDB

Mac:

/Users/[USERNAME]/Library/Application Support/Google/Chrome/Default/IndexedDB/

Linux:

/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/

→ Ссылка