将IndexedDB与Sql Server同步

Man*_*thy 5 sql-server indexeddb

我正在使用HTML5 IndexedDB概念在我的页面中进行脱机数据库连接..但是最初,我想获取大数据以将其存储在我的IndexedDb中,所以为此目的,我试图将Sql Server数据同步到我的IndexedDb Datatbase但是我没有找到任何解决办法.有没有办法做到这一点,如果是这样请帮助我..谢谢..

Den*_*ski 7

除了编辑克里斯托夫的答案之外,我还想补充一些事情,因为我已经开始研究类似的解决方案了.

  • 首先,编辑说IndexedDB是一个面向文档的数据库,而SQL关系数据库,这意味着你应该在将数据存储到本地之前将数据转换为对象模型
  • 避免在多个表中使用IndexedDB并尝试创建连接.
  • IndexedDB如果在数据库中存储不同的对象,或者您有主要对象的其他数据(一个表中的文章的示例列表 - 第二个表中的文章文本),则应使用其他表.

接下来是数据同步 - 如果您更新双方(客户端和服务器)上的数据,这可能会变得非常复杂.您将在数据同步中面临的主要问题是您将拥有一个主SQL数据库和许多本地客户端数据库.

以下是您应该考虑的几件事:

  • 您需要选择何时执行同步定时或按客户端请求.
  • 弹出的另一个问题是:如果用户在离线模式下大量工作并更新之前已被其他用户删除并存储到SQL数据库 的对象,该怎么办?
  • 当然,当您同步数据时,将其拆分为块,这将减少每个响应的大小,并IndexedDB在较小的事务中更快地运行.
  • 我目前一次同步500项(根据对象的大小调整)
  • 此外,在Chrome您可以访问IndexedDBweb-workers并使并行请求-这真的可以加快速度.

这只是您在开始实施解决方案之前需要考虑的一些事实,希望它有所帮助.


Kri*_*ave 4

根据我对你的问题的理解,你只是使用 indexeddb 作为缓存层,以防数据库完成。我要做的如下。

如果您在线工作,您的数据保存应该在 2 个操作中存在。保存到您的服务(SQL Server)并保存到您的indexeddb。

如果您离线,我会执行 2 个操作。On仍在更新您的indexeddb,但我会添加一个额外的对象存储,您可以在其中保存必须在服务上执行的所有操作。重新上线后,您可以一一处理它们。