sql-server - 将 IndexedDB 与 Sql Server 同步

标签 sql-server indexeddb

我正在使用 HTML5 IndexedDB 概念在页面中进行离线数据库连接。但最初,我想获取大数据并将其存储在我的 IndexedDb 中,因此为此目的,我尝试将 Sql Server 数据同步到我的 IndexedDb数据库,但我没有找到任何解决方案来做到这一点..有什么办法可以做到这一点,如果是的话请帮助我..谢谢..

最佳答案

除了 EditorKristof答案,因为我已经研究过类似的解决方案,所以我想添加更多内容。

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

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

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

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

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

关于sql-server - 将 IndexedDB 与 Sql Server 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22342836/

相关文章:

c# - SQL Server全文搜索词库

sql - 计算两个日期之间事件的记录数

sql-server - 无需循环遍历和获取图中的节点

c# - EntityFramework 创建 130 多个连接

c# - 将 Excel 数据导入数据库

javascript - IndexedDB - 无法创建多个对象存储并对其进行事务处理

javascript - IndexedDB 请求和事务的计时

sqlite - 如何将 Dart 连接到 SQLite?

javascript - IndexedDB 未保存在数据库中

javascript - Dexie.js Autoincrement 主键 - 它会重置吗?如何重置?