我正在使用 HTML5 IndexedDB 概念在页面中进行离线数据库连接。但最初,我想获取大数据并将其存储在我的 IndexedDb 中,因此为此目的,我尝试将 Sql Server 数据同步到我的 IndexedDb数据库,但我没有找到任何解决方案来做到这一点..有什么办法可以做到这一点,如果是的话请帮助我..谢谢..
最佳答案
除了 Editor和 Kristof答案,因为我已经研究过类似的解决方案,所以我想添加更多内容。
- 首先,正如编辑所说,
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/