私は jquery を初めて使用し、最近これらのコールバックがどれほど強力であるかに驚いています。しかし、ここでいくつかのロジックが得られましたが、最善の方法が何であるかはわかりません。基本的に、クロムのWeb SQLデータベースにたくさんのテーブルがあります。テーブルA、テーブルB、テーブルCを通過する必要があります。テーブルの各行をサーバーに送信する必要があります。各行は一連の複雑なロジックとデータ URL を表し、A -> B -> C の順序で送信する必要があります。
通常のJavaの方法は次のとおりです。
TableA.SubmitToServer()
{
query table A;
foreach(row in tableA.rows)
{
int nRetID = submitToServer(row);
//do other updates....
}
}
tableB と table C についても同様です。
次に、次のように呼び出します。
TableA.SubmitToServer();
TableB.SubmitToServer();
TableC.SubmitToServer();
//that is very clear and easy.
しかし、JQuery では、おそらく次のようになります。
db.Transaction(function (tx){
var strQuery = "select * from TableA";
tx.executeSql(strQuery, [], function (tx, result) {
for(i = 0 ; i < result.rows.length; i++) {
submitTableARowToServer(tx, result.rows.getItem(i), function (tx, result) {
//do some other related updates based on this row from tableA
//also need to upload some related files to server...
});
}
},
function errorcallback() ...
});
ご覧のとおり、ネストされたコールバックはすでに十分にあります。では、TableB と tableC の処理はどこに置けばよいのでしょうか。それらはすべて同様のロジックを持つ必要があり、TableA からすべてが完了した後にのみ呼び出すことができます。それで、JQueryでこれを行う最良の方法は何ですか?
ありがとう