您好我在javascript中使用此代码:
db.transaction(function (tx) {
tx.executeSql('DELETE FROM table');
var querys = texto.split('\n');
$.each(querys, function(i,elem) {
tx.executeSql(querys[i],[],null,null);
});
alert("DATA LOADED");
});
但我的问题是在tx.executeSql进程尚未完成插入记录之前显示警报...请帮助我!!!
答案 0 :(得分:0)
您可以尝试将查询包装在$.when
内,如下所示。
db.transaction(function (tx) {
tx.executeSql('DELETE FROM table');
var querys = texto.split('\n');
$.when(
$.each(querys, function(i,elem) {
tx.executeSql(querys[i],[],null,null);
})).then(function(){;
alert("DATA LOADED");
});
});
您也可以使用.done
代替.then
。
有关详细信息,请访问 this link
答案 1 :(得分:0)
请查看它是否对您有所帮助。使用executeSql
成功和失败回调函数。
db.transaction(function (tx) {
tx.executeSql('DELETE FROM table');
var querys = texto.split('\n');
var rowslength = querys.length;
var insertedlength = 0;
var callback = function(){
if(insertedlength == rowslength){
alert("DATA LOADED");
}
};
$.each(querys, function(i,elem) {
tx.executeSql(querys[i],[],function(){
insertedlength++;
callback();
},function(){
insertedlength++;
callback();
});
});
});