HTML5数据库表-检查是否为空



我正试图编写一个函数来确定html5 websql db表是否为空。代码如下。我在里面放了警报,看看发生了什么。当这个函数运行时,首先弹出底部的警报。虽然表为空,但返回值为false。

function tableisempty() {
tf = false;
query = "SELECT * FROM OLL;";
localDB.transaction(function(transaction){
         transaction.executeSql(query, [], function(tx, results){
             if (results.rows.length == 0) { 
                  tf = true;
                  alert ("table has "+results.rows.length+" rows. returning "+tf);
                 }   else    {
                  tf = false;    
                  alert ("table is not empty. returning "+tf); 
                 }                               
         }, errorHandler);              
});
alert ("return value is " + tf);
return tf;

}

根据您的评论和w3页面,查询是异步发生的。你的问题的解决方案真的取决于你的js代码结构。

选项1:

tf移出函数(并在前面添加一个var),并完全删除返回和警报。当你的回调函数被调用时,它会改变tf的值,你的其他代码可以引用它,这是正常的。

选项2:

根据这个SO问题,您可以将调用(我假设在代码中的其他地方)从openDatabase更改为openDatabaseSync以启用同步操作。

相关内容

  • 没有找到相关文章

最新更新