私有浏览模式下客户端数据库存储的替代方法

时间:2018-12-04 06:59:39

标签: javascript local-storage indexeddb web-storage

我做了一个网络服务。当用户登录时,该服务将在openRequest.onupgradeneeded中创建indexddb(idb)并将数据写入openRequest.onsuccess中的db中。代码看起来像这样,

export async function getCurrUser(window) {
    window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
    let  openRequest = indexedDB.open('userData',2);
    openRequest.onsuccess =  e =>{/*write data to db*/}
    openRequest.onupgradeneeded =  e => {/*build db*/}
    openRequest.onerror=e=> {//case private browsing}
}

在私有浏览模式下,仅调用openRequest.onerror;在我的情况下,用户永远无法成功登录。由于不可能将所有数据写入本地存储,因此我正在寻找合适的替代方法,以私密浏览模式进行存储。欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

https://www.npmjs.com/package/local-storage-fallback可能就是您想要的。

  

使用诸如“私人浏览”之类的浏览器设置,即使在较新的浏览器中,依靠有效的window.localStorage也已成为一个问题。即使它可能存在,在尝试使用setItemgetItem时也会抛出异常。该模块将运行适当的检查,以查看可能使用的浏览器存储机制,然后将其公开。它使用与localStorage相同的API,因此在大多数情况下,它应该可以作为替代产品。