0

我正在使用phonegap + sqlite。

我正在尝试插入一些东西。

这是代码-

function insertDB() {
        var sqlI = "INSERT INTO post_data(post_text,pdate) VALUES("Hello, world","23-05-2012");
        mydb.transaction(
                             function(transaction) {
                             transaction.executeSql(sqlI, [], nullDataHandler, errorHandler); 
                             });
        console.log("inserted");
        window.location="dashboard.html";
}

当我删除该行window.location="dashboard.html"或设置 1000 毫秒的延迟时,我可以插入数据,然后执行window.location="dashboard.html". 但是上面的代码不起作用。为什么?

4

1 回答 1

1

我认为该transaction功能是异步的。尝试将重定向放在上面:

mydb.transaction(
    function(transaction) {
        transaction.executeSql(
            sqlI, 
            [],  
            function(transaction, results){
                // passing transaction and results in case you have to display some returned statements
                window.location="dashboard.html";
            },
            nullDataHandler
        ); 
});

如您所见,重定向将在 resultHandler 中处理。

于 2012-06-23T00:57:12.087 回答