我正在開發具有本地存儲的Phonegap 2.5應用程序,使用事務來執行數據庫操作。麻煩的是,應用程序每過一段時間都會進入一個狀態,在該狀態下,對於同一事務,多次調用事務回調函數。這是我如何進行交易(當DBACCESS的保存函數被調用)的例子:通過成功的回調錯誤多次調用Phonegap存儲事務回調
function DbAccess(db)
{
this.db = db;
this.save = function(data, callback)
{
alert('saving'); //called once
this.db.transaction(function(tx){
tx.executeSql('CREATE TABLE ...');
tx.executeSql('DELETE FROM ...');
tx.executeSql('INSERT INTO ...');
}, function(error){
//on error
callback({
"success" : false
});
}, function(){
//on successs
callback({
"success" : true
});
});
}
}
當應用程序進入這種狀態,回調函數被調用多次(功能), 雖然保存功能只被調用一次(警報只會彈出一次)。 我懷疑當應用程序創建多個數據庫時出現這些錯誤。 我創建了一個數據庫,其名稱是基於用於登錄到應用程序(用戶名和實例變量是用戶輸入)用戶名:
var dbName = username + '_' + instance;
var db = window.openDatabase(dbName, "1.0", "OfflineData", 1000000);
如果我刪除應用程序數據並再次啓動,問題停止。 我不知道爲什麼發生這種情況,任何幫助將不勝感激。
更正了您的標記,因爲這是IndexedDB,而非localStorage – K3N