如何删除indexedDB?

102

我正在进行一个涉及使用IndexedDB的项目。由于我刚开始接触这项技术,因此需要手动删除indexedDB以便重新开始。

我已经找到了在Firefox中执行此操作的方法,但是我无法找到在Google Chrome中执行此操作的方法。

我尝试删除了这个文件夹的内容(我正在使用Mac):

{home}/Library/Application Support/Google/Chrome/Default/IndexedDB

但似乎Chrome仍然在任何地方保留着数据库,因此我无法重新开始。

20个回答

2

在 Debian GNU/Linux 目录中

/home/[用户名]/.config/google-chrome/Default/IndexedDB/chrome-xxx.indexeddb.leveldb/

包含常规文件(例如):

000003.log、CURRENT、LOCK、LOG、MANIFEST-000002


2

无法通过编程方式删除IndexedDB数据库(而不是存储和索引)。

至于手动解决方法,这篇文章详细介绍了Firefox和Chrome在Windows系统上的数据库位置。

更新:感谢开发人员Joshua Bell,Chrome实现了一个非规范但非常有用的deleteDatabase方法,该方法位于window.indexedDB对象上。这是crbug,该补丁已发布。此外,在较新版本的IE中,您可以通过设置面板删除数据库。


1

在安卓版Chrome中删除IndexedDB:

  1. 进入设置
  2. 选择网站设置
  3. 选择存储的数据
  4. 搜索需要删除的网站并点击
  5. 删除存储的数据

在安卓版Chrome中删除IndexedDB

(你无法通过“设置-隐私和安全”部分来删除IndexedDB,这是非常误导人的...)


1
为了补充@Judson的答案,基于@fullstacklife的评论;如果要使用javascript删除chrome中的IndexedDB,您应该:
let currentIDB = indexedDB.open("DB_NAME", DB_VERSION_INTEGER);
    currentIDB.onblocked = function(){
        //
    };
    currentIDB.onerror = function(){
        //
    };
    currentIDB.onsuccess = function(){
        var idb = currentIDB.result;
        idb.close();
        indexedDB.deleteDatabase("DB_NAME");
    };

0
在Windows中,您可以手动删除整个IndexedDB数据库,方法是找到浏览器的IndexedDB目录并将其删除。
对于Chrome:
C:\ Users \ user-name \ AppData \ Local \ Google \ Chrome \ User Data \ Profile 1 \ IndexedDB
您可以删除清除indexedDB的每个文件夹。现在您可以重新开始了。

0

由于大多数答案都没有提到如何查找数据库名称:

  1. 打开你想要清除的网站。
  2. 在 Chrome 中按 F12,选择控制台模式。
  3. 输入 indexedDB.databases().then(res => console.log(res)) 以了解此网站使用的数据库名称(使用交互式控制台打开结果,找到名称)。
  4. 最后,像上面提到的那样,在控制台中执行 indexedDB.deleteDatabase('<你的数据库名称>')

0
或者,您可以在新的隐身窗口中使用您的网络应用程序,并在完成后关闭它:数据库已删除。

0

在Chrome OSX中,路径为 /Users/user/Library/Application Support/Google/Chrome/Default/IndexedDB 在Firefox OSX中,路径为 Users/user/Library/Application Support/Firefox/Profiles/4zaemxcn.default/indexedDB

你只需要让库文件夹可见即可。所有的文件都存储在文件夹中(称为域名),文件使用哈希,但你可以从中找出数据库的名称。 你可以删除IDB中的数据,因为它是客户端数据库,所有数据都存储在本地。


0
我需要在Chrome中摆脱一个indexedDB。所以我使用MasterSeeker在我的电脑上搜索了这个糟糕的东西叫做“电子邮件助手”。在一堆被索引为Chrome的文件夹中找到了这个东西。看起来很容易,我只需删除那些文件。我查了一下如何操作,最终来到了这里。我用我的Windows 10电脑去了Chrome设置。我试图清除浏览数据。咔嚓——所有那些文件都从indexedDB中消失了,包括那个可怕的“电子邮件助手”垃圾。现在当我查看indexedDB文件夹时,我只看到重新出现的是https_mail.google.com_0.indexeddb.leveldb——看起来是一个安全的、不会引起烦恼的东西。

0
//By for loop
const deleteAllDBs=async()=>{
    const existingDBs=await indexedDB.databases()
    for (let i = 0; i < existingDBs.length; i++) {
        indexedDB.deleteDatabase(existingDBs[i].name)
    }
}

//By forEach loop
const dbs = await window.indexedDB.databases()
dbs.forEach(db => { window.indexedDB.deleteDatabase(db.name) })

1
您的答案可以通过添加更多关于代码的功能和如何帮助OP的信息来改进。 - Tyler2P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接