关闭选项卡时清除IndexedDB

问题描述 投票:0回答:1

由于数据量超过5 MB,我需要在indexedDB中保留一些数据,而不是sessionStorage

我对清理策略感到困惑,因为在重新加载页面或导航到另一页面的情况下,我需要保留此数据,但是如果用户关闭浏览器选项卡,我希望将其删除以节省空间。

我该怎么做?需要它至少可以在Chrome中运行。

javascript google-chrome indexeddb session-storage
1个回答
0
投票

您可以将指示器存储在会话存储器中,如果该值不存在,则删除数据库。

(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来显示其功能。

© www.soinside.com 2019 - 2024. All rights reserved.