2017-09-04 148 views
3

我需要删除所有的索引资料,目前我有:删除所有IndexedDB的

const indexedDB = window.indexedDB || window.mozIndexedDB 
    || window.webkitIndexedDB || window.msIndexedDB; 
if (indexedDB.webkitGetDatabaseNames) { 
    const bases = indexedDB.webkitGetDatabaseNames(); 
    bases.onsuccess = (event) => { 
    const data = event.target.result; 
    Object.values(data).forEach((db) => { 
     indexedDB.deleteDatabase(db); 
    }); 
    resolve(); 
    }; 
    bases.onerror = reject; 
} 

webkitGetDatabaseNames()功能是不确定的。 是否可以在不使用此方法的情况下删除所有IndexedDB?

PD:我想删除不知道是IndexedDB的名字,我需要从代码(JavaScript)的

回答

1

函数调用来删除名字越来越被indexedDB.webkitGetDatabaseNames depricated。 请参见下面的参考:

https://github.com/dfahlander/Dexie.js/issues/532

而且意图弃用:IDBFactory webkitGetDatabaseNames

https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/2fUr-3wFPKI/discussion

您可以使用下面techinques删除数据库:

Technique 1: 

据我可以说,应该使用indexedDB.deleteDatabase

var req = indexedDB.deleteDatabase(databaseName); 
req.onsuccess = function() { 
    console.log("Deleted database successfully"); 
}; 
req.onerror = function() { 
    console.log("Couldn't delete database"); 
}; 
req.onblocked = function() { 
    console.log("Couldn't delete database due to the operation being blocked"); 
}; 

我可以确认它适用于PhantomJS 1.9.0和Chrome 26.0.1410.43。

Technique 2 

从理论上讲,所有你需要做的在Chrome浏览器中删除索引资料是:

  1. 在Chrome中,进入选项>高级>内容设置>所有Cookie和网站资料>找到您在其中创建索引资料
  2. 命中无论是“X”或点击“索引数据库”域>删除

在Windows中,该文件位于:

%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\IndexedDB

在Mac上,请执行下列操作:

  1. 在Chrome中,进入 “设置”(或Chrome浏览器菜单下的 “首选项”)
  2. 点击 “显示高级设置”(在在页面的底部)
  3. 转到“隐私”>“内容设置”>“所有Cookie和网站数据”>找到你所创建的索引资料
  4. 命中无论是“X”的域或单击“索引数据库“>删除

在Mac上,该文件夹位于:

/Users/[USERNAME]/Library/Application Support/Google/Chrome/Default/IndexedDB/ 

在Linux上,该文件夹位于:

/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/ 
+0

谢谢您的回答,但我想删除不知道IndexedDB的名称和我需要从代码中删除。 –

+1

@FelipePincheira在不知道数据库名称的情况下删除了从indexedDB中删除的能力。您可以在创建数据库时尝试跟踪数据库(例如,在localStorage中),或者重新思考如何实现您的更大目标。 – Josh

+0

感谢乔希,我的一个选择是添加到localStorage,我看不到太多的可能性。 –