我做了一个网络服务。当用户登录时,该服务将在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;在我的情况下,用户永远无法成功登录。由于不可能将所有数据写入本地存储,因此我正在寻找合适的替代方法,以私密浏览模式进行存储。欢迎任何建议。
答案 0 :(得分:0)
https://www.npmjs.com/package/local-storage-fallback可能就是您想要的。
使用诸如“私人浏览”之类的浏览器设置,即使在较新的浏览器中,依靠有效的
window.localStorage
也已成为一个问题。即使它可能存在,在尝试使用setItem
或getItem
时也会抛出异常。该模块将运行适当的检查,以查看可能使用的浏览器存储机制,然后将其公开。它使用与localStorage
相同的API,因此在大多数情况下,它应该可以作为替代产品。