重复命名事务和对象存储

时间:2017-09-08 17:03:27

标签: javascript indexeddb

如果交易仅适用于1“表”,则在Object Store方法中指定“表格”的名称似乎是重复的。

问:有没有办法减少重复:

var transaction = db.transaction(["toDoList"], "readwrite");
var objectStore = transaction.objectStore("toDoList");

1 个答案:

答案 0 :(得分:1)

重复的原因是您可以在多个对象库上打开一个事务。如果您通常只是在一个对象库上打开一个事务,则可以将其包装在一个函数中:

function getObjectStore(name) {
    var transaction = db.transaction([name], "readwrite");
    return transaction.objectStore(name);    
}

var objectStore = getObjectStore("toDoList");

更一般地说,整个IndexedDB API相当冗长,使用像http://dexie.org/https://github.com/jakearchibald/idb

这样的包装器库更令人愉快