我创建了一个带有YDN的数据库:
var db = new ydn.db.Storage('our_db', our_schema);
第二次,我测试这个数据库是否存在。如果成功,我想称这个DB应用db.put()和其他东西......
在这种情况下,如何将此数据库检索到变量“db”?
我的测试代码:
if (window.indexedDB){ // if browser supports IndexedDB, create IndexedDB DB
var request = window.indexedDB.open("our_db", 1);
request.onerror = function(event) {
};
request.onsuccess = function(event) {
var db = ?????? ;
};
request.onupgradeneeded = function(event) {
// create the datastore
var db = new ydn.db.Storage('our_db', our_schema);
console.log("New storage !");
};
}
如果你有更好的想法...... 谢谢你的建议!
答案 0 :(得分:1)
由于ydn-db将使用这些样板来打开数据库(IndexedDB和WebSQL),你可以这样做
var db = new ydn.db.Storage('our_db', our_schema);
db.put('store name', data).done(function(key) {
console.log('put with key ' + key);
});
也没有必要测试对IndexedDB的支持。如果支持,它将被用作第一优先级。否则它将使用其他存储机制。
要知道客户端中已存在数据库,请收听ready
事件:
db.addEventListener('ready', function(e) {
var ver = e.getOldVersion();
if (ver > 0) {
console.log('existing database version: ' + ver);
} else {
console.log('new database created');
}
});