BreezeJS和IndexedDB脱机示例

BreezeJS和IndexedDB脱机示例,breeze,Breeze,好的,我知道BreezeJS在哪里支持IndexedDB,至少基于他们网页上的条目,但是我在哪里可以找到如何使用BreezeJS和IndexedDB本地存储选项构建脱机解决方案的示例? 如何在本地存储中构建此服务器端方案? 另外,是否也有与Mysql同步的示例? 感谢Breeze可以将从EntityManager导出的任何实体集合存储到客户机上可用的任何本地存储机制中,但是要了解,您是在单个键下存储实体的整个序列化集合,也就是说,您不是通过单个实体的键将其存储到存储中 我们还没有任何使用Inde

好的,我知道BreezeJS在哪里支持IndexedDB,至少基于他们网页上的条目,但是我在哪里可以找到如何使用BreezeJS和IndexedDB本地存储选项构建脱机解决方案的示例? 如何在本地存储中构建此服务器端方案? 另外,是否也有与Mysql同步的示例?
感谢

Breeze可以将从EntityManager导出的任何实体集合存储到客户机上可用的任何本地存储机制中,但是要了解,您是在单个键下存储实体的整个序列化集合,也就是说,您不是通过单个实体的键将其存储到存储中

我们还没有任何使用IndexedDb的示例,但DocCode示例zip中有几个示例使用浏览器localStorage。indexedDb的基本思想基本相同

  • 1) 通过EntityManager.exportEntities调用将实体导出为字符串。(这将返回字符串化的json结果)
  • 2) 使用任意键将字符串存储到本地存储(浏览器localStorage或IndexedDb)
  • 3) 后来。。。从localStorage检索字符串
  • 4) 通过EntityManager.Importenties调用将字符串导入EntityManager

Breeze不为IndexedDB提供包装。你必须自己写。 window.indexedDB是浏览器HTML5 DOM的一部分,因此当您在Breeze文档中看到它时,它仅引用浏览器DOM中可用的内容。
您需要编写自己的定制IndexedDB函数来处理从数据库保存和检索的请求。

这里有一个pull请求,它增加了对BreezeJS的支持,这将增加对使用IndexedDB导出/导入的更高级支持。如果您希望将此支持添加到Breeze.JS,请+1


您是说有一个window.indexedDB选项而不是window.localStorage选项吗?另外,如果我有一个脱机运行的应用程序,并且在客户端脱机时创建了一个新记录,然后必须稍后与远程数据库同步,而远程数据库不知道在客户端脱机创建的新记录,如何做到这一点?在调查这个场景时,我需要考虑什么?要么技术是可用的,要么两者都独立于微风。是您的代码将它们链接起来。对于breeze,您需要考虑在某个时间点存储EntityManager的整个状态,然后从该时间点恢复它。从概念上讲,您可以在添加每个实体后存储整个状态,但这可能是一个非常糟糕的设计。这样做的目的是确定何时(或已经)脱机并存储状态。还原时,所有本地添加的记录都将还原为存储它们时的状态(即,仍然挂起的添加)。您知道如何调用IndexedDB吗?以下内容不起作用,我查看了soruce代码,但找不到它。你支持IndexedDB吗?var stashName=“my_newTodos”;window.indexedDB.setItem(stashName,changesExport);Breeze现在有一个机制indexeddb的导出