Javascript在循环上设置超时
Javascript set timeout on a loop
我有一个从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 = ('');
});
});
}
您的函数在超时时间内正在立即执行!如果要传递参数,请将其封装在匿名函数中,否则将立即执行!
setTimeout(function() {
sendWS(data2)
}, 50000);
相关文章:
- 为什么页面重新加载会使设置超时无效,以及如何避免
- 立即设置超时
- iOS Safari Javascript设置超时问题
- 如何将嵌套设置超时转换为承诺
- 如何循环设置超时函数
- 关于设置超时/间隔上下文
- 清除设置超时之前的间隔将不起作用
- 在悬停功能中设置超时
- 延迟设置超时()
- 我们是否需要设置超时进行短轮询
- 更合乎逻辑的设置超时例程
- 应设置超时触发多少次
- 如何获得设置超时以从输入中读取值
- 尝试为函数和passvariable设置超时-dos'不起作用
- 清除超时多次设置超时
- Javascript设置超时和重定向-IE冻结
- 当一些文本粘贴到文本框中时(没有设置超时),是否检查数字
- 重置设置超时-javascript
- 间隔/设置超时起点
- 设置超时难度