IndexedDB не показывает данные в отладчике, а показывает в консоли - PullRequest
0 голосов
/ 10 апреля 2020

Я делаю вызов ajax и сохраняю данные ответов в indexedDB. Ответ представляет собой массив строк. После проверки многих вопросов и предложений, я следил за ответом @buley и сделал следующее:

 $(document).ready(function () {
var db_name = 'mobileClaimsDb',
    store_name = 'claims';
$.ajax({
    url: 'index.cfm?action=main.appcache',
    type: 'post',
    cache:true,
    success: function (data) {
        var request,
        upgrade = false,
            doTx = function (db, entry) {
                addData(db, entry, function () {
                    getData(db);
                });
            },
            getData = function (db) {
                db.transaction([store_name], "readonly").objectStore(store_name).openCursor(IDBKeyRange.lowerBound(0)).onsuccess = function (event) {
                    var cursor = event.target.result;
                    if (null !== cursor) {
                        console.log("entry", cursor.value);
                        cursor.continue();
                    }
                };
            },
            addData = function (db, entry, finished) {
                console.log('adding', entry);
                var tx = db.transaction([store_name], "readwrite"),
                    claims = [];
                tx.addEventListener('complete', function (e) {
                    finished();
                });
                $.each(claims, function (key, value) {
                    tx.objectStore(store_name).add(value);
                });
            };
        request = window.indexedDB.open(db_name);
        request.oncomplete = function (event) {
            if (upgrade) {
                doTx(request.result, data);
            }
        };
        request.onsuccess = function (event) {
            if (!upgrade) {
                doTx(request.result, data);
            }
        };
        request.onupgradeneeded = function (event) {
            var db = event.target.result;
            db.createObjectStore('claims', {
                keyPath: null,
                autoIncrement: true
            });
        }
    }
}); 

});

Он также создает базу данных и хранилище, но данные не отображаются при открытии магазина. Но, это показывает данные в консоли с парой ключ / значение. Я не понимаю, почему это не отображается. enter image description here

Это показывает, как это.

В консоли, он заполняется правильно. enter image description here

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

...