2

indexed-db で複数のレコードを作成しようとしましたが、許可されません。たとえば、nike と adidas の objectStores

var nike = Lawnchair({adapter:'indexed-db', name:'stores', record:'nike'},function(e){
    console.log("nike store open");
    this.save({id:1}, function(data){
        console.log('nike data: ', data);
    });
});

var adidas = Lawnchair({adapter:'indexed-db', name:'stores', record:'adidas'},function(e){
    console.log("adidas store open");
    this.save({id:1}, function(data){
        console.log('adidas data: ', data);
    });
});

これがindexed-dbで複数のレコードを作成する方法だと思います。実際には request.onupgradeneeded で発生します。以下のコードを参照してください。

// Handle datastore upgrades.
request.onupgradeneeded = function(e) {
    var db = e.target.result;

    var nike = db.createObjectStore('nike');
    var adidas = db.createObjectStore('adidas');
};

adidas レコードを作成できない場合、これは実際にはアクセス時にスローされるエラーです。

[Exception... "The operation failed because the requested database object could not be found. For example, an object store did not exist but was being opened." code: "8" ...]
4

2 に答える 2

1

Lawnchair は、スキーマレスのユースケース向けに設計されています。Lawnchair インスタンスごとに個別のデータベースを使用します。

データベースに複数のテーブルが本当に必要な場合は、私の独自の ydn-db などの他のライブラリを使用してください。

于 2013-07-31T08:56:24.127 に答える