Подтвердить что ты не робот

Как просмотреть содержимое IndexedDB в firefox

Я играл с IndexedDB в Firefox (Ubuntu)

Есть ли способ визуализации содержимого баз данных IndexedDB? Или я должен делать это программно-союзнически?

4b9b3361

Ответ 1

Кровящая кромка Chromium builds, по сообщениям, позволяет просматривать содержимое IndexedDB на панели "Ресурсы" в Chrome devtools, но только я знаю, что один из способов неинтересно просматривать содержимое Firefox IndexedDB и загрузить файл .sqlite напрямую.

Firefox IndexedDB.sqlite файлы находятся в /Users/{USER}/Library/Application Support/Firefox/Profiles/{PROFILE}/indexedDB в OS X и должны быть C:\Users\{USER}\AppData\Roaming\Mozilla\Firefox\Profiles\{PROFILE} в Windows.

Я использую отличный (и бесплатный) инструмент для Firefox SQLite Manager, который является кросс-платформой.

which looks like this

Одна вещь, которую следует иметь в виду, состоит в том, что содержимое часто хранится как двоичные капли и, вероятно, не может быть понятным для человека. Ключи сохраняются как текст, однако они должны быть прочитаны вручную.

Обновить. Хотя локальные файлы остаются отличным способом просмотра баз данных и хранилищ IDB, у Chrome теперь есть отличные инструменты, доступные на панели "Ресурсы".

Ответ 2

Я только что загрузил надстройку IndexedDB Browser для Firefox. Это работает хорошо. После загрузки он находится в:

Инструменты > Веб-разработчик > Обозреватель IndexedDB

https://addons.mozilla.org/en-US/firefox/addon/indexeddb-browserupdated-fix/

EDIT: Начиная с Firefox 26 файлы для IndexedDB переместились с

{PROFILE}/indexedDB/
на
{PROFILE}/storage/persistent/
Текущая версия (0.1.4) не обрабатывает это изменение. Однако его легко решить с помощью символической ссылки.

Ответ 3

Местоположение Firefox indexedDB на Ubuntu:

~/.mozilla/firefox/*.default/storage/persistent/

или

~/.mozilla/firefox-trunk/*.default/storage/persistent/

Ответ 4

Вы можете попробовать мой indexeddbviewer, он находится на http://linq2indexeddb.codeplex.com.

Следующее, что вам нужно сделать: - Добавьте следующие ссылки на свою страницу:

<script type="text/javascript" src="../Scripts/jquery-1.7.2.js"> </script>
<script type="text/javascript" src="../Scripts/jquery-ui-1.8.20.js"> </script>
<script type="text/javascript" src="../Scripts/Linq2IndexedDB.js"> </script>
<script type="text/javascript" src="../Scripts/IndexedDBViewer.js"> </script>

Это означает, что вам нужно получить jQuery + jQuery UI И linq2indexedDB (это моя библиотека, и вы можете получить ее также на http://linq2indexeddb.codeplex.com).

И чтобы заставить его работать, добавьте в тело следующее:

<body>
    <p><label id="lblDatabaseName" for="txtDatabaseName">Database name:</label> <input type="text" id="txtDatabaseName" /><input type="button" id="btnViewDatabase" value="View database" /></p>
    <div id="tabs">
        <ul>
        </ul>
    </div>
</body>

Я попробую сделать более простой способ как можно скорее.

Другой способ - просто использовать мою библиотеку linq2indexeddb и создать новый экземпляр этого типа:

var db = window.linq2indexedDB("Database name", null, true)

если вы это сделали, вы можете вызвать средство просмотра атрибутов, которое предоставит вам всю информацию о базе данных indexeddb.

db.viewer

Ответ 6

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