Во-первых, следует понимать, что PWA или P rogressive W eb A pp по определению должны поддерживать все браузеры и должны быть прогрессивными в характер, т. е. в зависимости от возможностей браузера, приложение должно адаптироваться и выбирать, какие функции использовать, чтобы подбодрить пользователя.
Краткая аналогия:
Акула в аквариуме вырастет 7 дюймов но в океане она вырастет
7 + Футы .
Ваше приложение похоже на акулу!
Аквариум / Океан как ваш браузер !!
Ресурсы Fish tank / Ocean - ваш браузер
Будь то аквариум или океан, акула все еще остается акулой (похоже,
это добыча). Отличается масштаб / размер / емкость / производительность (например,
Акулы в океане имеют большие зубы и охотятся на крупную рыбу).
Применяя аналогию, дизайн вашего приложения не ДОЛЖЕН зависеть от базы данных / хранилища (или любой другой функции браузера) для визуализации самого себя, но в то же время он должен иметь возможность использовать их, если он поддерживается браузером для того, чтобы обеспечить лучший пользовательский опыт. (Это означает, что PWA должны работать, даже если говорят, что localStorage не поддерживается каким-то странным браузером - слишком много, чтобы спрашивать!)
Если продолжить, ваше приложение может попытаться использовать IndexedDB в браузере, если нет, предоставить соответствующий механизм отката (откат вообще не обязательно должен быть локальным хранилищем !, но, возможно, простой визуализацией ). IndexedDB используется для хранения больших объемов данных, которые требуют широких возможностей запросов, тогда как localStorage похож на sessionStorage, который сохраняется даже после закрытия окна, обычно предназначен для хранения некоторого набора пар ключ / значение. Попытка использовать один поверх другого была бы неправильной - они предназначены для разных типов наборов данных / вариантов использования.
Короче , в контексте PWA, НЕПРАВИЛЬНО думать "IndexedDB или Local
Хранилище? ", но подумайте, какой опыт вы хотите предоставить своему
пользователи на основе ограниченных возможностей браузера в вашем распоряжении.
Удачи вам в вашем PWA !!!
Интересно прочитать о доступных опциях хранения в разных браузерах
https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/#comparison