16

可查询的客户端数据存储有哪些解决方案?这将用作临时缓存来执行基本操作,例如在客户端中对用户选择的日期范围进行排序和聚合

我找到了一些有前途的候选人,但我不确定最好的选择是什么

还有一些其他不太理想的选择:

  • HTML5 localstorage/sessionstorage(需要在此之上构建一个查询层......如草坪椅或localstoragedb)
  • IndexedDB(浏览器兼容性)
  • 谷歌齿轮(停产)
  • WebSQL(规范停止)

我很想知道您对这些选项的体验/是否还有其他我错过的选项

4

4 回答 4

2

您可以将jStoragejLinq结合使用

于 2013-04-01T19:17:49.593 回答
1

我编写了两个简单的 API 来处理 Storage 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 的命名空间(无会话)。基本上,您可以添加分组到命名空间中的“行”,以便您可以根据这些命名空间分离数据:https ://github.com/chambs/zonjs

就像是:

zon('user').insert({name: 'Willian', email: 'o.chambs@gmail.com'});

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

其中“用户”是您定义的命名空间。对于同一个源/域,您可以拥有任意数量的命名空间

希望能帮助到你 :)

于 2013-04-01T14:56:26.173 回答
1

你有没有尝试过我的开源库https://bitbucket.org/ytkyaw/ydn-db/wiki/Home。它支持 IndexedDB、WebSQL 和 localStorage。查询是NoSQL 风格,即索引基键范围查询。多索引查询需要使用复合索引或键连接算法。目前有基本的SQL查询接口,随着时间的推移会更好。

大型网络应用程序,其中大部分是 CRM,在生产中使用该库。

于 2013-03-27T02:45:03.447 回答
0

我已经将草坪椅用于我工作的一些小型内部工具,总体而言,体验非常积极。

我在这个过程中学到的东西:Douglas Crockford 的JSON-js cycle.js解决了我在保存/获取双链接对象时的字符串化问题。

有人在草坪椅 github repo 上发布了一个问题,描述了同样的问题,让我省去了很多麻烦。https://github.com/brianleroux/lawnchair/issues/105

于 2013-02-19T07:50:08.673 回答