我有一个从Web Sql读取数据并将其发送到Web服务以将数据插入SQL Server的函数。如果不是Web服务处理所有信息需要大约40秒的事实,那么所有这些都将是好的和简单的。 我已经设置了将数据发送到Web服务的超时但它似乎没有工作....当我在表中有多行时它只发送第一行并跳过其余的行,所以这意味着超时不起作用。 任何帮助表示赞赏。
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)
超时内的功能正在立即执行!如果您正在传递参数,请将其包装在匿名函数中,否则将立即执行!
setTimeout(function() {
sendWS(data2)
}, 50000);