2014-02-12 14 views
0

我有一個非常簡單的應用程序(一個更大的應用程序的開始),它在這一點上做了一件事。它所做的只是創建一個新的數據庫和表格並插入一行數據。問題是,當我在瀏覽器上點擊「刷新」時,數據和表格就消失了。我使用Chrome和開發人員檢查工具查看WebSQL表中的數據。WebSQL和jQuery - 數據庫在刷新時消失

以前有過這個嗎?我究竟做錯了什麼?我認爲HTML5的重點是持久數據,所以即使在刷新數據庫時也應該堅持。我錯了嗎?

這裏是我的簡單的代碼:

的index.html

<div data-role="main" class="ui-content"> 
    <h2>Hello</h2> 
    <button id="deviceReady">Device Ready</button> 
    <button id="resetSQL">Reset SQL</button> 
    </div> 

那麼一些jQuery的:

$(document).ready(function() { 
    $("#deviceReady").click(function(){ 
    alert("device ready"); 
    initDB(); 
    }); 

    $("#resetSQL").click(function() { 
    var db = openDatabase(dbName, dbTitle, dbVersion, dbMaxSize); 
    db.transaction(function(tx) { 
     tx.executeSql('DROP TABLE IF EXISTS creds'); 
     tx.executeSql('DROP TABLE IF EXISTS foo'); 
    }); 
    }); 
}); 

實際DB的東西

function initDB() { 
    var db = openDatabase(dbName, dbTitle, dbVersion, dbMaxSize); 
    db.transaction(function(tx) { 
    tx.executeSql('CREATE TABLE IF NOT EXISTS creds (id unique, usr, psw)'); 
    tx.executeSql('INSERT INTO creds (id, usr, psw) VALUES (1, "none", "none")'); 
    }); 
} 

所以我所做的只是打開網頁,點擊「Device Ready」按鈕來運行initDB函數。數據正確顯示在數據庫中,但是當我刷新時,數據就消失了。

回答

0

你是對的數據應該堅持,除非你運行drop table或刪除查詢。因此,在這段代碼中,只有重置點擊處理程序的位置,請嘗試對其進行註釋並查看數據是否保留。也許不知何故,點擊事件被觸發而不是僅僅註冊。

+0

你說得對(關於數據的問題)。我最終做的只是繼續我的發展,假設數據實際上仍然存在。果然,這是。但是,在刷新時,它仍然會使數據看起來像已經消失,但仍然存在。它爲非常具有挑戰性的調試作了準備,因爲即使它在那裏,我仍然無法查看數據。 – Garfonzo