2014-05-23 51 views
0

我有一個函數從Web Sql讀取數據並將其發送到Web服務以將數據插入到SQL Server中。如果不是Web服務處理所有信息需要大約40秒的時間,所有這些都會很好,很容易。 我已經設置了發送數據到Web服務的超時,但它似乎並沒有工作....當我有一個表中的多行,它只發送第一行,並跳過剩下的,所以它意味着超時不起作用。 任何幫助表示讚賞。在循環中設置Javascript超時

 db2.transaction(function (tx) { 
     tx.executeSql('SELECT * FROM offlineCabinDefects', [], function (tx, results) { 
      var len = results.rows.length, i; 
      for (i = 0; i < len; i++) { 

       var airline = results.rows.item(i).Airline; 
       var tail = results.rows.item(i).Tail; 
       var fn = results.rows.item(i).FlightNumber; 
       var ad = results.rows.item(i).ActionDate; 
       var ca = results.rows.item(i).CabinArea; 
       var ci = results.rows.item(i).CabinItem; 
       var uf = results.rows.item(i).UnserviceableFlag; 
       var rn = results.rows.item(i).RowNumber; 
       var sn = results.rows.item(i).SeatNumber; 
       var dscr = results.rows.item(i).Description; 
       var r = results.rows.item(i).Revision; 
       var user = results.rows.item(i).UserName; 
       var pass = results.rows.item(i).Password; 

       data2 = "{'Airline':'" + airline + 
          "','Tail':'" + tail + 
          "','FlightNumber':'" + fn + 
          "','ActionDate':'" + ad + 
          "','CabinArea':'" + ca + 
          "','CabinItem':'" + ci + 
          "','UnserviceableFlag':'" + uf + 
          "','RowNumber':'" + rn + 
          "','SeatNumber':'" + sn + 
          "','Description':'" + dscr + 
          "','Revision':'" + r + 
          "','UserName':'" + user + 
          "','Password':'" + pass + "'}"; 


       setTimeout(sendWS(data2), 50000); 
      } 
      dropTable2(); 
      document.getElementById("offlineresult").innerHTML = (''); 
      document.getElementById("offlinetbl").innerHTML = (''); 
     }); 
    }); 
} 
+0

花時間確保您發佈的代碼已完成。 –

+0

什麼對你來說看起來不完整? –

+0

你有沒有試過在問這個問題之前使用谷歌搜索? –

回答

0

您的函數在超時時間內立即執行!如果你傳遞參數,把它包裝在一個匿名函數中,否則它會立即執行!

setTimeout(function() { 
    sendWS(data2) 
}, 50000); 
+0

** setTimeout **代碼是目前在一個循環內。有可能有更好的方式來重組代碼。 –

+0

它沒有工作,使用這個語句沒有發送到sendWS的行 –