可查询的客户端存储

时间:2013-02-18 22:27:41

标签: javascript html5 local-storage web-sql lawnchair

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

我找到了一些有希望的候选人,但我不确定最佳选择是什么

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

  • HTML5 localstorage / sessionstorage(需要在此基础上构建查询图层...如lawnchair或localstoragedb)
  • IndexedDB(浏览器兼容性)
  • Google齿轮(停产)
  • WebSQL(规范停止)

我很想知道你对这些选项的体验/如果还有其他我错过了

4 个答案:

答案 0 :(得分:2)

您可以将jStoragejLinq

结合使用

答案 1 :(得分:1)

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

大型网络应用程序,大多数是CRM,在生产中使用该库。

答案 2 :(得分: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');

其中'user'是您定义的命名空间。 对于相同的源/域

,可以拥有任意数量的名称空间

希望有所帮助:)

答案 3 :(得分:0)

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

我在这个过程中学到的东西:道格拉斯·克罗克福德的JSON-js cycle.js在保存/获取双重链接对象时解决了我的字符串问题。

有人在grasschair github repo上发布了一个问题,描述了同样的问题并给我带来了很多麻烦。 https://github.com/brianleroux/lawnchair/issues/105

相关问题