let db;
function createDB() {
let dbName = "Jokes";
let dbVersion = 5;
let request = indexedDB.open(dbName, dbVersion);
request.onupgradeneeded = e => {
db = e.target.result
console.log(db);
let jstore = db.createObjectStore("JokeStore", {keyPath: "title"});
let mstore = db.createObjectStore("MockStore", {keyPath: "title"});
alert("upgrade");
}
request.onsuccess = e => {
db = e.target.result
console.log(db);
alert("success");
}
request.onerror = e => {
alert("error"+e.target.error);
}
}
function addRecord(title, text) {
let tx = db.transaction("JokeStore","readwrite");
tx.onerror = e => alert(e.target.error);
let jstoretx = tx.objectStore("JokeStore");
jstoretx.add({title: title, text: text});
}
function viewNotes() {
let tx = db.transaction("JokeStore", "readonly");
let jstore = tx.objectStore("JokeStore");
let request = jstore.openCursor();
request.onsuccess = e => {
let cursor = e.target.result;
if (cursor) {
console.log(cursor.key, cursor.value.text);
cursor.continue();
}
}
}
createDB(); // Creates db if not there or opens an existing one
addRecord("Joke 1", "Knock Knock"); // Adds record
addRecord("Joke 2", "Elephant and the ant"); // Adds record
viewNotes(); // Displays all records in console
function readDB() {
let dbName = "wawc";
let dbVersion = 70;
let request = indexedDB.open(dbName, dbVersion);
request.onsuccess = e => {
let db = e.target.result
let tx = db.transaction("user", "readonly");
let jstore = tx.objectStore("user");
let request = jstore.openCursor();
request.onsuccess = e => {
let cursor = e.target.result;
if (cursor) {
console.log(cursor.key, cursor.value);
cursor.continue();
}
}
}
request.onerror = e => {
console.log("error"+e.target.error);
}
}
readDB();
7条答案
按热度按时间rks48beu1#
据报道,出血边缘 chrome 构建允许您在Chrome开发工具的资源面板中查看IndexedDB内容,但只有我知道一种非编程地查看Firefox IndexedDB内容的方法,那就是直接加载.sqlite文件。
Firefox的IndexedDB.sqlite文件在OS X上位于
/Users/{USER}/Library/Application Support/Firefox/Profiles/{PROFILE}/indexedDB
,在Windows上应该是C:\Users\{USER}\AppData\Roaming\Mozilla\Firefox\Profiles\{PROFILE}
。我使用优秀的(免费的)Firefox工具SQLite Manager,它是跨平台的。
但是有一点要记住,内容通常以二进制blob的形式存储,很可能不是人类可读的。但是密钥以文本的形式存储,所以它们应该能够用手读取。
更新虽然本地文件仍然是查看IDB数据库和商店的好方法,但Chrome现在在资源面板中提供了很好的工具。
rseugnpd2#
我刚刚下载了Firefox的IndexedDB Browser附加组件。它运行良好。下载后,它位于:
工具〉Web开发人员〉IndexedDB浏览器
https://addons.mozilla.org/en-US/firefox/addon/indexeddb-browserupdated-fix/
编辑:自Firefox 26以来,IndexedDB的文件已从
到
当前版本(0.1.4)不处理此更改。但是可以通过符号链接轻松解决。
q9rjltbz3#
在新版本的firefox中,开发者工具附带了一个方便的存储检查器。
https://developer.mozilla.org/en-US/docs/Tools/Storage_Inspector
目前你必须使用firefox的nightly build来获得它。
https://nightly.mozilla.org/
jaql4c8m4#
Firefox在Ubuntu上的indexedDB位置是:
~/.mozilla/firefox/*.default/storage/persistent/
或
~/.mozilla/firefox-trunk/*.default/storage/persistent/
xqk2d5yq5#
你可以试试我的indexeddbviewer,它位于http://linq2indexeddb.codeplex.com。
您需要执行以下操作:- 将以下引用添加到您的页面:
这意味着您需要获得jQuery + jQuery UI和linq 2 indexedDB(这是我的库,您也可以在http://linq2indexeddb.codeplex.com上获得它)。
要使其正常工作,请在正文中添加以下内容:
我会尽快想出一个更容易的办法。
另一种方法是使用我linq 2 indexeddb库,并创建它的一个新示例,如下所示:
如果您已经完成了这个操作,您可以调用一个属性查看器,它将为您提供有关indexeddb数据库的所有信息。
c86crjj06#
ckocjqey7#
我必须从WhatsApp Web会话中读取indexedDB,我是这样做的:
控制台日志将显示“wawc”数据库中表“user”的内容。