0

for ループ内でトランザクションを実行したい。私のコードは:-

 for(var i=0;i<len;i++){
      // some code

      alert('before transaction');

      var db = window.openDatabase("Database", "1.0", "Pin Point", 200000);
      db.transaction(fetchSubList, errorLists);  

      alert('after transaction');
  }


 function fetchSubList(tx) {  
    tx.executeSql('some QUERY', [], fetchSubListSuccess, errorLists);
  }


function fetchSubListSuccess(tx, results) {
  alert("fetchSubListSuccess()...");

  // some code
}

しかし、問題は、アラートの後 (トランザクションの前) に直接アラートを受け取り (トランザクションの後)、for ループが終了してからトランザクションが開始されることです....

このリンクをたどって解決しましたが、まだ理解できません....

4

1 に答える 1

1

それは不可能です...コードを次のようにリファクタリングする必要があります:-

    db.transaction(function(tx) 
    {

      // some value
      var loop_limit = 10

      for(var i=0; i<loop_limit;i++ ){ // ITERATE HERE
        tx.executeSql(Statement, [],Sucess, error);
      }

    });
于 2012-12-06T08:43:17.383 に答える