0
我将数据库变量保存在窗口范围内,但现在我开始怀疑事务和对象存储。保持交易开放被认为是一种不好的做法?
myRequest = indexedDB.open('myDatabase')
myRequest.onupgradeneeded = function(response) {
\t var myDatabase
\t \t ,myObjectStore
\t
\t myDatabase = response.target.result
\t myObjectStore = myDatabase.createObjectStore('myData',{autoIncrement:true})
}
myRequest.onerror = function(response) {
\t debugger
}
myRequest.onsuccess = function(response) {
\t var obj = {}
\t window.myDatabase = response.target.result // This is ok, right?
\t window.myTransaction = myDatabase.transaction(['myData'],'readwrite') // But what about this?
\t window.myObjectStore = myTransaction.objectStore('myData') // And this?
\t obj.field1 = 'a'
\t obj.field2 = 'b'
\t myObjectStore.add(obj)
}
它可能没有意义保留在窗范围内的事务,使用时要引用一个特定的“表”。
毕竟,交易何时会被视为不完整?我只是想过这个问题,而不是每次需要时都创建一个新的事务。