2017-09-04 54 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,我看不到太多的可能性。 –