在包含tx.executeSql的每个函数后显示警报

时间:2015-04-02 06:40:09

标签: javascript html5 localdb

您好我在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进程尚未完成插入记录之前显示警报...请帮助我!!!

2 个答案:

答案 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();
        });
    });

});