0

iOS / Androidアプリの開発にphonegap(cordova 2.1.0)を使用しています。選択または挿入/更新するためのクエリを作成する必要があるたびに、これを実行しています。

//to insert username, password into db
var db = window.openDatabase(dbName, "1.0", gAppConfig.dbMessage, 200000);                
db.transaction(queryUpdateURL, errorQuery);

function queryUpdateURL(tx) 
            {
                var newURL = document.getElementById('changeServerURL').value ; 
                alert('new url='+newURL);

                tx.executeSql("update "+gAppConfig.configTable+" set value='"+newURL+"' where key='serverURL'; ", queryUpdateSuccess, errorQuery);

                return;
            }

したがって、クエリを実行するたびに、または1回だけで十分なデータベースを開く必要があります。次に、dbオープニングが成功した場合は、「queryUpdateURL」が呼び出され、その中で指定されたクエリが成功した場合は、「queryUpdateSuccess」が呼び出されます。それ以外の場合は、errorQuery関数が呼び出されます。つまり、1つのクエリを実行するだけで、3つの関数が呼び出されます。それは正しい方法/唯一の方法ですか、それとも他の回避策が存在しますか?これは本当に苦痛のようで、1つのクエリに対して3つの関数を作成します。どんな提案でも大歓迎です。ありがとう。

4

1 に答える 1

1

非同期プログラミングへようこそ。メソッド呼び出しの数を減らすために、いつでも「db」変数を保存して、window.openDatabaseを呼び出し続ける必要がないようにすることができます。それ以外の場合は、トランザクション-> executeSql->成功または失敗スタックに従って、データベースに追加する必要があります。

于 2012-12-07T15:40:03.223 に答える