Lawnchair-IndexedDB не поддържа множество записи

Опитах се да създам множество записи в 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. Всъщност се случва при поискване.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" ...]

person Nino Paolo    schedule 30.07.2013    source източник


Отговори (2)


Lawnchair е проектиран за случай на използване без схема. Използвайте отделна база данни за всеки екземпляр на Lawnchair.

Ако наистина имате нужда от множество таблици в база данни, вие други библиотеки, като моята, ydn-db.

person Kyaw Tun    schedule 31.07.2013
comment
Здравей Kyaw Tun, изтеглих вашата библиотека, но имам проблем с нейното компилиране. Той генерира|-ydn.db-jquery-0.7.7.js | | |-zss-ydn.db-conn.js | | |-zss-ydn.db-core-db.js | | |-zss-ydn.db-core-idb.js | | |-zss-ydn.db-core.js | | |-zss-ydn.db-crud-db.js | | |-zss-ydn.db-crud-idb.js | | |-zss-ydn.db-crud-simple.js | | |-zss-ydn.db-crud-websql.js | | |-zss-ydn.db-crud.js | | |-zss-ydn.db-dev.js | | |-zss-ydn.db-dev.js.map | | |-zss-ydn.db-jquery.js | | |-zss-ydn.db-raw.js | | `-zss-ydn.db.js - person Nino Paolo; 03.08.2013
comment
Здравей Kyawn, можеш ли да обясниш каква е разликата между тези *.js? :) Благодаря. Това е страхотна библиотека. Също така, има ли някаква опция за мен да избера какво хранилище да използвам? Например, да кажем, че искам да използвам websql вместо indexed-db. Моят chrome поддържа websql и indexed-db. :) - person Nino Paolo; 03.08.2013
comment
Това са двоични разпределения. Използвате който и да е, в зависимост от това каква функция искате. За да промените механизмите за съхранение, променете mechanisms в опциите. За повече подробности вижте api doc dev.yathit.com/api-reference /ydn-db/storage.html - person Kyaw Tun; 04.08.2013
comment
Страхотно! Благодаря ти Kyaw. Вашата ydn-db библиотека е перфектна :) - person Nino Paolo; 05.08.2013
comment
здравей, kyawn tun, просто искам да потвърдя дали ydn-db поддържа в mobile/phonegap? - person Nino Paolo; 14.08.2013
comment
да Разгледайте демо приложение за Android. - person Kyaw Tun; 14.08.2013

Намерих начин да го поправя. Добавих корекция, като добавих свойство records към обект на опция. Вижте {адаптер..., записи:[...]} по-долу.

<script>

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


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

</script>

Вижте моята заявка за изтегляне тук: https://github.com/brianleroux/lawnchair/pull/175

person Nino Paolo    schedule 01.08.2013