2013-02-18 154 views
16

可查詢的客戶端數據存儲有什麼解決方案?這將被用作臨時緩存來執行基本操作,例如排序和聚合客戶端中用戶選擇的日期範圍。可查詢的客戶端存儲

我找到了一些有前途的候選人,但我不確定最佳選項是什麼

還有一些其他的最佳少選擇:

  • HTML5的localStorage/sessionStorage的(需要建立在上面查詢層這個...像lawnchair或localstoragedb)
  • IndexedDB的(瀏覽器的兼容性)
  • 谷歌齒輪(停產)
  • 的WebSQL(規格停止)

我很好奇,想知道這些選項您的經驗/如果有

+2

你知道那些庫都只是包裝器你認爲什麼是「不太理想」的解決方案。你只需要選擇適合你的最佳包裝。 – adrian 2013-02-18 22:39:21

+0

我意識到這 - 這就是爲什麼我問這些項目的人的經驗,希望不重新發明輪子(或者可能錯過我還沒找到的東西) – user1424744 2013-02-18 22:50:15

+3

爲什麼地獄這個問題關閉,因爲沒有建設性?這是超級有用 – KJW 2014-02-12 01:53:33

回答

0

我用lawnchair對我工作的地方和一個小規模的夫妻內部的工具,我已經錯過了其他的整體經驗一直非常積極。

我的東西在這個過程中瞭解到:做保存/獲得雙鏈接的對象時,道格拉斯Crockford的JSON-js cycle.js解決我的問題字符串化。

有人在lawnchair github回購上發佈了一個描述同樣問題的問題,併爲我節省了很多頭痛。 https://github.com/brianleroux/lawnchair/issues/105

+1

它的查詢方式是重複散列表......它對DB> 10K行沒有用 – delphi 2013-03-26 21:06:03

+0

好點,感謝您的反饋。儘管原始問題提到了排序和彙總用戶選擇的日期範圍。我想不出哪種用例會衝擊到10K的記錄門檻。 – 2013-03-26 23:13:31

1

你有試過我的開源庫https://bitbucket.org/ytkyaw/ydn-db/wiki/Home。它支持IndexedDB,WebSQL和localStorage。查詢是NoSQL風格,即索引基本密鑰範圍查詢。多索引查詢需要使用組合索引或密鑰加入算法。目前,SQL有基本的查詢接口,隨着時間的推移會更好。

大型網絡應用程序,其中大部分都是CRM,在生產中使用庫。

+0

這看起來很有趣!當它使用localStorage而不是IndexedDB時,它如何處理關鍵字段查詢和SQL? – user1424744 2013-04-01 22:31:31

+0

localStorage密鑰範圍查詢使用內存AVL樹。它是從0.4.9發佈以來實施的。 localStorage的SQL尚未實現。 – 2013-04-03 04:10:59

1

我寫了兩個簡單的API來處理存儲API。 其中之一是一個包裝可以很容易地與本地和會話存儲工作:https://github.com/chambs/minidb/

喜歡的東西:

minidb.local.set('name', 'Willian');

minidb.local.get('name'); //gives you "Willian"

minidb.session.set('userData', {id:333, name: 'Joseph'});

minidb.session.get('userData'); //gives that object

另一個是僅基於localStorage API的名稱空間(無會話)。 Basicly您可以添加「行」分爲命名空間,這樣就可以根據這些命名空間分隔數據:https://github.com/chambs/zonjs

喜歡的東西:

zon('user').insert({name: 'Willian', email: '[email protected]'});

zon('user').del('8739874397494');

其中「用戶」是您已定義的名稱空間。 很可能有儘可能多的命名空間,只要你喜歡的同一產地/域

希望它能幫助:)