由于数据量超过5 MB,我需要在indexedDB
中保留一些数据,而不是sessionStorage
。
我对清理策略感到困惑,因为在重新加载页面或导航到另一页面的情况下,我需要保留此数据,但是如果用户关闭浏览器选项卡,我希望将其删除以节省空间。
我该怎么做?需要它至少可以在Chrome中运行。
您可以将指示器存储在会话存储器中,如果该值不存在,则删除数据库。
(async() =>
{
if (!sessionStorage.getItem('just-a-placeholder'))
{
indexedDB.deleteDatabase('temp');
sessionStorage.setItem('just-a-placeholder', true);
}
const databases = await indexedDB.databases();
console.log(databases.find(db => db.name === 'temp') !== undefined)
await indexedDB.open('temp');
})();
可悲的是,StackOverflow不能以我可以在此处显示的方式运行代码段,但是这里是一个JSFiddle来显示其功能。