2012-11-26 48 views
0

在我的ASP.NET Web窗体应用程序中,我需要执行一些JQuery操作来收集表单数据,然后遍历表单数据以保存到SQLite数据库,并在成功完成后关闭当前窗口。如果窗口保持打开状态,保存操作将完美工作,但只要我将window.close添加到SQLite事务中的成功回调窗口似乎在保存操作有时间完成之前关闭。编辑:如果我把window.close()放在window.setTimeout()里面1秒,一切正常。所以这绝对是一个时间问题。似乎回调不应该在事务完成之前触发?!SQLite成功回调在事务完成前触发

+0

我们需要看到代码在executeSql里面。我会假设这是Ajax隐藏的地方,乍看之下,它看起来好像没有正确运行关闭函数作为回调。 –

+0

我不确定你在找什么代码。 executeSql在那里。 – jmease

+0

对executeSql的调用就在那里。函数内的代码不是。 –

回答

0

使用表格中的行数作为预期要插入的行数。与此相比, 到rowsAffected由结果来验证交易完成:

if (closeWindow == "Yes") 
    { 
    if (result.rowsAffected === /*Number of rows inserted*/) 
    { 
    window.close(); 
    } 
    } 
0

你应该等待交易完成,而不是的ExecuteSQL:

function save(closeWindow) { 
    db.transaction(function (tx) { 
     tx.executeSql(checkListInsert.substring(0, checkListInsert.length - 6), []); 
    }, function() { }, function() { 
     if (closeWindow == "Yes") { 
      window.close(); 
     } 
    }); 
} 
相关问题