HTML5数据库表 - 检查是否空

问题描述:

我试图编写一个函数来确定html5 websql数据库表是否为空。代码如下。我把警报放在那里看看发生了什么。当此功能在底部弹出警报时,首先弹出。尽管表格为空,但返回值为false。HTML5数据库表 - 检查是否空

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; 

}

+0

这真的是HTML5吗? – GolezTrol

+1

@GolezTrol是的。例如http://diveintohtml5.org/storage.html –

+0

今天我学到了一些东西。 :) – GolezTrol

基于您的评论和w3 page,查询正在发生的事情异步。解决你的问题真的取决于你的js代码结构。

选项1:

移动tf之外的功能(并在前面加一个var),并彻底清除前返回和警告的权利。当你的回调被调用时,它会改变tf的值,其余的代码可以引用它是正常的。

选项2:

根据this SO问题,你可以只是(在你的代码我相信其他地方)从openDatabase更改您的来电openDatabaseSync启用同步操作。