1

Firefox 4 中的 IndexedDB 为我们开发用于客户端数据库查询和存储的应用程序提供了新的潜力,同时离线和在线。这是一个非常新的替代方案并且非常有趣,因为我的组织分布在许多在线 Web 服务较差的国家/地区。

大图: “IndexedDB 允许 Web 应用程序在您的本地系统上存储大量数据(当然,在您明确许可的情况下),以便以后快速离线检索。”</p>

我的问题

我不明白以下内容。

  1. 然后如何将客户端数据库中的离线更改(例如在海地)与华盛顿特区的中央数据库合并?

  2. 甚至,海地 3 个客户端上的 3 个单独的数据库更改如何相互同步?也许这是不可能的?

  3. 这种客户端数据库的好处和限制是什么?

4

1 回答 1

0

您的问题很准确,并总结了数据协调的一些挑战。总而言之,这是可能的,但我不建议单独尝试。在数据库领域,像 CouchDB 这样的应用程序正在处理这个问题,并表明这是一项艰巨的任务。

跨对象存储合并数据意味着您将需要大量的应用程序逻辑来优雅地完成它。例如,当两个离线应用更新同一行时会发生什么?你会遇到“合并冲突”,这种情况就是为什么像 Git 这样的源代码控制应用程序如此复杂。

为了实现这个想法,您可以使用 Git 块的芯片并使用“事件溯源”作为滚动更改的一种方式。我正在IDB 中使用类似的概念,并且效果很好。值得注意的是,我不是在尝试合并对象存储之间的更改,而是在单个对象存储中管理修订,因此您的任务将被认为要复杂得多。

于 2012-05-07T15:20:19.077 回答