2011-10-27 22 views
1

我已經JavaScript函數如下:HTML5/JS SQLite數據庫不進入交易功能

function initDatabase() { 

    if (!window.openDatabase) { 
     alert('Databases not supported in this browser'); 
    } else { 
     var shortName = 'TestDB'; 
     var version = '1.0'; 
     var displayName = 'HTML5 Test Database'; 
     var maxSize = 1024 * 1024; 
     db = openDatabase(shortName, version, displayName, maxSize); 
     alert('opened db ' + db); //this says its a database 

     db.transaction(function (tx) { 
      alert('before create'); //never gets here 
      tx.executeSql('CREATE TABLE IF NOT EXISTS Person(FirstName TEXT, MiddleName TEXT, LastName TEXT);'); 
      alert('after create'); 
     }); 

     alert('after transaction'); //does get here 
    } 
} 

被稱爲上的文件準備:

$(document).ready(function() { 
     initDatabase(); 
    }); 

正如您從註釋中看到,出現在數據庫被創建/打開(不知道如何我可以驗證這個雖然),但當我嘗試創建一個事務並執行一些SQL,該函數似乎從來沒有進入。

我做錯了什麼?我如何驗證數據庫是否存在?

我正在使用Chrome 14進行測試。

謝謝

+0

一種可能性是寫'變種DB =的openDatabase(...',而不是'DB =的openDatabase(... ' – Jules

回答

2

該警報似乎是警告。它可能會暫停使其不起作用的事情。

alert無論如何(在調試方面)被console.log「取代」,如果我用日誌替換警報,一切似乎都有效(我得到所有四個日誌)。

(要查看這些console.log電話,您可以按F12鍵,然後單擊控制檯。)

+0

那麼,這隻會讓我感到愚蠢。謝謝你提供的信息。一切似乎沒有警報就能正常工作。 –