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)
}
它可能沒有意義保留在窗範圍內的事務,使用時要引用一個特定的「表」。
畢竟,交易何時會被視爲不完整?我只是想過這個問題,而不是每次需要時都創建一個新的事務。