2012-11-06 62 views
0

當我執行這種功能,它顯示我以下錯誤超時:JavaScript執行JavaScript的超過

「JavaScript執行超過超時」我怎樣才能使用的setTimeout()或什麼解決這個問題?

我從json文件中檢索3000行。

applyChanges_PhrasesTypes: function(employees, callback) { 

      //alert("fonction apply chamges est lancer PhrasesTypes"); 

      this.db.transaction(
       function(tx) { 
        var l = employees.length; 
        var sql = 
         "INSERT OR REPLACE INTO PhrasesTypes (IdPhrase, IdPhraseES, IdRubrique, IdTypeTravauxAffichage, Phrase, AidePhrase, AvertissementPhrase,OrdrePhrase,QuotationParDefaut,Published) " + 
         "VALUES (?,?,?,?,?,?,?,?,?,?)"; 
        //alert('Inserting or Updating in local database: PhrasesTypes'); 
        var e; 
        for (var i = 0; i < l; i++) 
        { 
         e = employees[i]; 
         log(i); 
         //log("Ligne "+ i +" est inserer de id PhrasesTypes = "+e.IdPhrase); 
         var params = [e.IdPhrase, e.IdPhraseES, e.IdRubrique, e.IdTypeTravauxAffichage, e.Phrase, e.AidePhrase, e.AvertissementPhrase,e.OrdrePhrase,e.QuotationParDefaut,e.Published]; 
         tx.executeSql(sql, params); 
        } 
        log('sync_PhrasesType shronization terminée avec (' + l + ' items sync_PhrasesTypeshronié)'); 
       }, 
       this.txErrorHandler_PhrasesTypes, 
       function(tx) 
       { 
        callback(); 
       } 
      ); 
     } 

@lgor:這裏是我的代碼,但只有2000插入線,並以一個錯誤終止,

JavaScript執行超過超時的JavaScript

InsertPortion: function(tx) 
    { 
    var l = Math.min(gEmployees.length, gIter + 300); 

    log('aaaaaaaaaaaaaaaaaaaaaaaa---'+l) 

    for (; gIter<l ; gIter++) 
       { 
     log('do insert here'); 
      var sql = 
      "INSERT OR REPLACE INTO PhrasesTypes (IdPhrase, IdPhraseES, IdRubrique, IdTypeTravauxAffichage, Phrase, AidePhrase, AvertissementPhrase,OrdrePhrase,QuotationParDefaut,Published) " + 
      "VALUES (?,?,?,?,?,?,?,?,?,?)"; 
     //alert('Inserting or Updating in local database: PhrasesTypes'); 
       var e;    
      e = gEmployees[gIter]; 
      log(gIter); 
      //log("Ligne "+ i +" est inserer de id PhrasesTypes = "+e.IdPhrase); 
      var params = [e.IdPhrase, e.IdPhraseES, e.IdRubrique, e.IdTypeTravauxAffichage, e.Phrase, e.AidePhrase, e.AvertissementPhrase,e.OrdrePhrase,e.QuotationParDefaut,e.Published]; 
      tx.executeSql(sql, params); 

        } 

       if (gIter < gEmployees.length) 
       { 
        log('sync_PhrasesType shronization terminée avec (' + gIter+ ' items sync_PhrasesTypeshronié)'); 
        setTimeout(dao3.InsertPortion(tx), 100); 
       } 
       else 
       { 
        gEmployees = null; 
        gIter = 0; 
       } 

    }, 




applyChanges_PhrasesTypes: function(employees, callback) { 

     //alert("fonction apply chamges est lancer PhrasesTypes"); 

     this.db.transaction(
      function(tx) 
      { 
       gIter = 0; 
       gEmployees = employees; 

       dao3.InsertPortion(tx); 

      }, 
      this.txErrorHandler_PhrasesTypes, 
      function(tx) 
      { 
       callback(); 
      } 
     ); 
    }, 
+0

我只希望你不要將存儲在JavaScript中的SQL運行到數據庫中。主要的安全問題。 – jfrej

+0

@jfrej這可能是在本地存儲SQLlite數據庫的HTML5上使用的SQL。 –

+0

對不起,但我不能讓你明白 –

回答