小编Nat*_*iaT的帖子

IndexedDB:何时关闭连接

我想知道关闭数据库连接的正确位置是什么.

假设我有以下代码:

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并关闭这里的数据库连接,这可能是一个更好的选择.任何投入都将受到欢迎.谢谢.

html5 indexeddb

6
推荐指数
2
解决办法
3198
查看次数

标签 统计

html5 ×1

indexeddb ×1