在sqlite中插入后不能正常工作的window.location

时间:2012-06-23 00:43:53

标签: javascript sqlite cordova

我正在使用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"。但上面的代码不起作用。为什么呢?

1 个答案:

答案 0 :(得分: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中处理。