2012-07-24 74 views
1

我的應用程序使用客戶端數據庫存儲使用webSQL爲用戶存儲信息。我聽說瀏覽器開始轉向webSQL。目前只有Chrome,Safari和Opera支持它。由於IE和Firefox不支持webSQL,我正在使用cookie來存儲信息,如果用戶使用這些瀏覽器。然而,Cookie不太安全,並且很難存儲大量數據。那麼我的問題是,現在是否有更好的選擇類似於所有瀏覽器支持的JavaScript API?謝謝。客戶端存儲與Web SQL數據庫

+0

如果你正在尋找一些真正跨瀏覽器的東西,那麼暫時你運氣不好(直到HTML5官方無論如何)。 LocalStorage最終應該完成這項工作,但在瀏覽器中模擬RDBMS可能有點矯枉過正。存儲_anything_客戶端本質上是不安全的,因爲它處於客戶端的控制之下。 – Widor 2012-07-24 16:22:17

回答

2

我認爲IndexedDB將是您的選擇,它是一個基於對象的數據存儲。它目前由Chrome,Firefox和IE 10支持,將來也會支持它。

看一看下面的介紹,以更好地瞭解 http://html5-demos.appspot.com/static/html5storage/index.html#slide1

從我的經驗,我建議使用一個包裝庫只是爲了減少在瀏覽器的未來變化的風險。很少有流行的庫如下

  1. 寄存給出填充工具通過雷米夏普
  2. Amplify.js通過appendTo HTML5 API與回退的HTML4瀏覽器 (包括IE6)
  3. RealStorage HTML5 API是一個子集整體API
  4. YUI3 CacheOffline由YUI團隊
  5. Persistence.js異步Javascript對象數據庫映射
  6. YDN-DB易於使用的數據庫包裝器是IndexedDB,和的WebSQL建立的localStorage封上庫頂。
0

我已經晚了兩年,但考慮到這個問題被問到後,客戶端瀏覽器空間的發展,我想我會增加我的兩分錢。

當問這個問題的時候,IndexedDB是唯一的替代WebSQL,儘管當時對它的支持很不明顯。雖然今天前者依然如此,但後者並沒有:現在,all of the major browser vendors have an implementation of IndexedDB

考慮到IndexedDB是目前保持在W3C標準軌道上的唯一數據庫,它幾乎是本地客戶端數據庫的唯一選擇。

但是在深入瞭解IndexedDB之前,您應該瞭解幾件事。首先,它是一個非關係型文檔存儲,並且本身不支持SQL。第二個是它的API至少可以說是笨拙的。

鑑於這些事情,我建議你查看BakedGoods。有了它,將一個或多個數據項在IndexedDB的數據庫,例如,是簡單的:

bakedGoods.set({ 
    data: [{key: "key1", value: "value1"}, {key: "key2", value: "value2"}], 
    storageTypes: ["indexedDB"], 
    function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){} 
}); 

當然,如果你是某種形式的受虐狂,你可以忽略我的建議和處理原始API。但不要說我沒有提醒你!

爲了完全透明,BakedGoods由您真正維護:)。