在我的 ASP.NET Web 表单应用程序中,我需要执行一些 JQuery 操作来收集表单数据,然后遍历表单数据以保存到 SQLite 数据库,并在成功完成后关闭当前窗口。如果窗口保持打开状态,保存操作可以完美运行,但是一旦我将 window.close 添加到我的 SQLite 事务中的成功回调中,窗口似乎在保存操作有时间完成之前关闭。
function save(closeWindow)
{
//Gathering form data and creating the checkListInsert string containing my bulk insert statement (i.e. Insert Into Table Select .... Union Select...)
db.transaction(function (tx) {
tx.executeSql(checkListInsert.substring(0, checkListInsert.length - 6), [], function (tx, result) {
if (closeWindow == "Yes") {
//window.close(); If left uncommented the data will not save. When left commented the save occurs but of course the window is still open
}
}, onSQLError);
});
}
编辑:如果我将 window.close() 放在 window.setTimeout() 内 1 秒,一切正常。所以这绝对是一个时间问题。似乎在事务完成之前回调不应该触发?!