IndexedDB在Chrome中无声地放置/添加失败(适用于所有网站)

时间:2017-10-11 21:33:51

标签: google-chrome indexeddb

在Chrome上使用IndexedDB进行了一些成功的开发后,所有写操作都停止了工作而没有出现任何错误。 Safari的一切都很好。

以下是一个不起作用的简单示例:

var db = null;
var req = indexedDB.open("TestDb", 1);

req.onsuccess = function(event) {
    db = event.target.result;
    db.onerror = function(event) {
      error('Error: ', event.target.errorCode);
    };

    var os = db.transaction(['users'], "readwrite").objectStore('users');
    req = os.put({id: 2, name: 'Benoît'});

    req.onsuccess = function (event) {
        console.log('Put success', event.target.result);

        var os = db.transaction(['users'], "readwrite").objectStore('users');
        var req = os.get(2);
        req.onsuccess = function(event) {
            console.log('Get success', event.target.result);
        }

    };
    req.onerror = function (event) {
        console.log('error', event);
    };
};

req.onupgradeneeded = function(ev) {
    console.log('db upgradeneeded', ev);
    var db = ev.target.result, objectStore;

    if (ev.oldVersion < 1) {
        objectStore = db.createObjectStore('users', {keyPath: "id"});
        objectStore.createIndex("name", "name", {unique: false});
    }
};

导致控制台日志:

  

成功2

     

获得成功未定义

1 个答案:

答案 0 :(得分:2)

实际上磁盘空间不足。

如@Joshua Bell所述,查询成功但事务中止,因此您需要查看transaction.onabort以引发错误消息。