我正在从事一个涉及使用 IndexedDB 的项目。当我开始了解这项技术时,我需要能够手动删除 indexedDB,以便重新开始。
我在 Firefox 中找到了方法,但在 Google Chrome 中找不到方法。
我尝试删除此文件夹的内容(我使用的是 Mac):
{home}/Library/Application Support/Google/Chrome/Default/IndexedDB
但似乎 Chrome 仍然在任何地方都有数据库,所以我无法重新开始。
我正在从事一个涉及使用 IndexedDB 的项目。当我开始了解这项技术时,我需要能够手动删除 indexedDB,以便重新开始。
我在 Firefox 中找到了方法,但在 Google Chrome 中找不到方法。
我尝试删除此文件夹的内容(我使用的是 Mac):
{home}/Library/Application Support/Google/Chrome/Default/IndexedDB
但似乎 Chrome 仍然在任何地方都有数据库,所以我无法重新开始。
我在 Chrome 中成功运行了以下内容:
indexedDB.deleteDatabase('DB NAME')
理论上,在 Chrome 中删除 IndexedDB 所需要做的就是:
在 Windows 中,该文件位于此处:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\IndexedDB
在 Mac 上,执行以下操作:
在 Mac 上,该文件夹位于此处:
/Users/[USERNAME]/Library/Application Support/Google/Chrome/Default/IndexedDB/
在 Linux 上,该文件夹位于:
/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/
另一种方法是在开发人员控制台中执行此操作,使用以下命令:
indexedDB.deleteDatabase("databaseName")
在 Chrome webkit 中,您可以使用webkitGetDatabaseNames
它返回所有数据库名称
使用此代码,您可以删除所有本地 indexedDB:
window.indexedDB.webkitGetDatabaseNames().onsuccess = function(sender,args)
{
var r = sender.target.result;
for(var i in r)
indexedDB.deleteDatabase(r[i]);
};
要删除所有Chrome IndexedDB 数据库,请在 OSX 终端模拟器中运行以下命令。
rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*
现在重新启动浏览器,就是这样。
因为我需要经常清除 IndexedDB 数据库,所以我在 ~./bash_profile 中设置了一个别名。
alias purge-idb="rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*"
要从 OS X 版本的 Chrome 中删除 IndexedDB:
1) 在首选项中,显示高级设置,然后单击“隐私”部分下的“内容设置”按钮。
2) 在“内容设置”弹出窗口中,单击“Cookies”部分下的“所有 Cookies 和站点数据”按钮。
3) 在“Cookie 和站点数据”弹出窗口中,使用“搜索 Cookie”文本框查找作为 IndexedDB 来源的域。
4) 单击列表中的域条目。
5) 单击域下列出的“索引数据库”标签。
6) 单击索引数据库的下拉详细信息中的“删除”按钮。
在控制台中编写此代码段
window.indexedDB.deleteDatabase(<your db name>)
在 Debian GNU/Linux 目录中
/home/[用户名]/.config/google-chrome/Default/IndexedDB/chrome-xxx.indexeddb.leveldb/
包含常规文件(例如):
000003.log,电流,锁定,日志,清单-000002
Chrome 开发者工具现在可以在“应用程序/清除存储”下删除应用程序的所有数据库。
Chrome -> Inspector Window -> Application -> 查看左侧菜单 -> Storage -> IndexedDB
对于您的具体问题,这可能有点矫枉过正,但我一直在努力删除我的 idb。
我最终的解决方案是基于mozilla 的文档,但要求我先关闭数据库。
对我来说,在 Javascript 中,代码如下所示:
my_db_instance.close(function(e){console.log(e)});
var DBDeleteRequest = indexedDB.deleteDatabase("my_db_name");
// When i had the base open, the closure was blocked, so i left this here
DBDeleteRequest.onblocked = function(event) {
console.log("Blocked");
};
DBDeleteRequest.onerror = function(event) {
console.log("Error deleting database.");
console.log(event);
};
DBDeleteRequest.onsuccess = function(event) {
console.log("Database deleted successfully");
};
为了完成@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");
};
或者,在新的隐身窗口中使用您的 Web 应用程序,并在完成后关闭它:数据库已删除。
在 Windows 中,您可以通过定位浏览器的 IndexedDB 目录并将其删除来手动删除整个 IndexedDB 数据库
对于铬:
C:\Users\user-name\AppData\Local\Google\Chrome\User Data\Profile 1\IndexedDB
您可以删除清除 indexedDB 的每个文件夹。你现在可以重新开始。
在 chrome OSX - /Users/user/Library/Application Support/Google/Chrome/Default/IndexedDB Firefox OSX - Users/user/Library/Application Support/Firefox/Profiles/4zaemxcn.default/indexedDB
您只需要使库文件夹可见。所有文件都存储在文件夹中(称为域名),文件使用哈希,但您可以从中找出数据库的名称。您可以从 IDB 中删除数据,因为它是客户端数据库并且所有数据都存储在本地。
我需要摆脱 Chrome 中的 indexedDB。因此,我使用 MasterSeeker 在我的计算机上搜索了这个名为“电子邮件助手”的糟糕东西。在 Chrome 中 indexedDB 的一堆文件夹中找到了这个东西。我只是删除这些文件似乎太容易了。我查了一下如何,最后到了这里。我使用 Windows 10 PC 进行了 chrome 设置。我只是尝试清除浏览数据。Presto - 所有这些文件都从 indexedDB 中消失了,包括那个可怕的“电子邮件助理”crapola。现在,当我查看 indexedDB 文件夹时,我看到所有重新出现的是 https_mail.google.com_0.indexeddb.leveldb - 这看起来像是一件安全且无刺激性的事情。