【发布时间】:2019-07-30 03:10:55
【问题描述】:
我正在使用 Angular 7 创建一个 PWA 应用程序。我正在决定如何在本地存储一些数据,并且有两种选择:
- 本地存储
- 索引数据库
localstorage的优点是
- 同步
- 返回字符串
locstorages的缺点
- ServiceWorker 无法访问本地存储
- 不安全
IndexedDB 的优点是
- 比本地存储更多的存储空间
- 可以存储和检索对象
- 基于承诺
IndexedDB的缺点
- 在 Firefox 私人会话中不可用
现在如果我使用 IndexedDB 来存储数据,来自 Firefox Private 会话的用户将无法使用我的网站,如果我使用 localstorage,我将无法利用 ServiceWorker。
您如何克服 IndexedDB 和 LocalStorage 的上述问题?
【问题讨论】:
-
我相信 chrome 和 firefox 都会在我们使用隐私浏览时清除存储空间:developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/…
-
@Harish 我同意浏览器在会话关闭后删除任何数据,但私有模式下的 Firefox 不允许访问 indexedDB,这会损害流程。
-
只是一个建议,在这种情况下,为什么您可以检查用户是否在私人浏览中以及他是否正在使用本地存储。检查 PB Like this -> "var db = indexedDB.open("test"); db.onerror = function(){/*Firefox PB 已启用*/}; db.onsuccess =function(){/*未启用*/ };"
标签: angular local-storage progressive-web-apps indexeddb