我想知道关闭数据库连接的正确位置是什么.
假设我有以下代码:
function addItem(dbName, versionNumber, storeName, element, callback){
var requestOpenDB = indexedDB.open(dbName, versionNumber); //IDBRequest
requestOpenDB.onsuccess = function(event){
//console.log ("requestOpenDB.onsuccess ");
var db = event.target.result;
var trans = db.transaction(storeName, "readwrite");
var store = trans.objectStore(storeName);
var requestAdd = store.add(element);
requestAdd.onsuccess = function(event) {
callback("Success");
};
requestAdd.onerror = function(event) {
callback("Error");
};
};
requestOpenDB.onerror = function(event) {
console.log ("Error:" + event.srcElement.error.message);/* handle error */
callback("Error");
};
}
Run Code Online (Sandbox Code Playgroud)
addItem基本上将一个新元素添加到数据库中.根据我的理解,当触发requestAdd事件时,并不一定意味着事务已经完成.因此,我想知道调用db.close()的最佳位置是什么.我正在关闭requestAdd.onsucess内部的连接,但如果发生错误并且触发了requestAdd.onerror,则可能仍会打开连接.我正在考虑在request.onerror下添加trans.oncomplete并关闭这里的数据库连接,这可能是一个更好的选择.任何投入都将受到欢迎.谢谢.