2013-05-29 16 views
11

我正在用HTML,CSS和JavaScript做一個待辦事項列表應用程序,我認爲存儲數據的最佳方式是本地數據庫。我知道如何使用localStoragesessionStorage,並且我也知道如何使用在線MySQL數據庫。但是,此應用程序必須能夠脫機運行,並且應該脫機存儲其數據。
有沒有一種方法可以用HTML和JavaScript做到這一點?如何製作本地離線數據庫


回覆評論:

「你說你知道如何使用localStorage ...那麼,似乎是什麼問題?」

@Lior我所知道的關於localStorage的是,你可以存儲一個結果,作爲一個變量,而我不妨去賣場一排約含對象diffenent數據的不同列。但是,localStorage是否可以保存一個對象,如果是的話,它是否與通常的對象符號一起引用?

任何實現都可能取決於用戶喜歡使用哪種瀏覽器。

@paul我認爲鉻最受歡迎。


好吧,我想澄清什麼我問的確實是我怎樣才能做到這一點JavaScript和HTML而非有沒有一種方法,我可以只用HTML和JavaScript這樣做呢?。基本上,我想要一種SQL數據庫,將其內容保存在用戶的機器上而不是聯機。

什麼解決了我的問題是使用WebDB或WEBSQL(我認爲它被稱爲類似的東西)。

+0

你說你知道如何使用'localStorage' ...所以似乎是什麼問題? –

+0

任何實現都可能取決於用戶喜歡使用的瀏覽器。 – paul

+0

使用'localStorage',你不能本地存儲一個對象,但解決的方法是使用'JSON.stringify'來存儲它,'JSON.parse'來檢索它 – Ian

回答

8

我大約3年後回答了這個問題,但考慮到當時沒有關於可用選項的實際討論,並且OP最終選擇了is now deprecated的數據庫,我想我會把它扔進我的兩分錢就此事。

首先,需要考慮是否實際需要客戶端數據庫。更具體地說...

  • 你需要數據項之間的顯式或隱式關係嗎?
  • 如何查詢上述項目的能力?
  • 或超過5 MB在太空中?

如果您對上述所有內容回答「否」,請使用localStorage並將自己從頭疼的WebSQL和IndexedDB API中拯救出來。那麼,也許只是後者的頭痛,因爲如前所述,前者已被棄用。

否則,IndexedDB是本機客戶端數據庫的唯一選擇,因爲它是唯一保留在W3C標準跟蹤中的選項。

如果您想要利用這些設施中的任何一個或更多,而不必編寫低級存儲操作代碼,請檢出BakedGoods。有了它,將數據放置在其中所支持的客戶端上的第一次遇到本地數據庫,例如,很簡單,只要:

bakedGoods.set({ 
    data: [{key: "key1", value: "val1"}, {key: "key2", value: "val2"}], 
    storageTypes: ["indexedDB", "webSQL"], 

    //Will be polyfilled with defaults for equivalent database structures 
    optionsObj: {conductDisjointly: false}, 

    complete: function(byStorageTypeStoredKeysObj, byStorageTypeErrorObj){} 
}); 

哦,和完全透明的緣故,BakedGoods被這傢伙的權利維護這裏 :) 。

相關問題