2011-10-04 81 views
0

我試圖編寫一個函數來確定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

回答

0

基於您的評論和w3 page,查詢正在發生的事情異步。解決你的問題真的取決於你的js代碼結構。

選項1:

移動tf之外的功能(並在前面加一個var),並徹底清除前返回和警告的權利。當你的回調被調用時,它會改變tf的值,其餘的代碼可以引用它是正常的。

選項2:

根據this SO問題,你可以只是(在你的代碼我相信其他地方)從openDatabase更改您的來電openDatabaseSync啓用同步操作。