gpt4 book ai didi

breeze - 如何在混合移动应用程序上同步 Azure 移动服务 (ZUMO) 和 SQLite 之间的数据?

转载 作者:行者123 更新时间:2023-12-02 04:54:00 24 4
gpt4 key购买 nike

我正在开发一个混合移动应用程序,部分要求是允许应用程序在 SQLLite 中离线存储数据,稍后通过 SQL Moblile 服务将其与 SQL Azure 同步。为此,我研究了 MS Sync Framework,JayData现在看 BreezeJs

对于 MS Sync 框架,我已经意识到更改架构需要大量工作,而且它已经过时了。对于 JayData,问题在于它接受 oData,但标准 AMS 端点是 JSON 提要...我有人可以帮助我以某种方式使它正常工作...

现在通过 SO 问题我意识到很多人都在使用带有 AMS/ZUMO 的 breezejs。我还检查了样本 http://www.breezejs.com/samples/todo-zumo我想知道是否可以从 AMS 下载数据并将其本地存储在 SQLLite 数据库中,然后使用 breezejs 将其同步回 AMD 托管的 SQL Azure 表。

提前感谢所有帮助。

PS:我愿意接受任何其他更好的替代方案/建议。

记住场景是 HTML/JS SPA 混合移动应用

最佳答案

简而言之,是的,这是可能的。

不幸的是,较长的答案是在这种情况下您将自己做很多工作。

此时,我将创建一个连接到后端数据库的 Azure 移动应用程序(Azure 应用服务 Web 应用程序的扩展)。创建一个表,然后将一个 JSON 对象发布到该表的 URI(类似于 http://blah.azurewebsites.net/tables/yourtable)。当您使用 GET http://blah.azurewebsites.net/tables/yourtable 检索同一个表时您会注意到 Azure 移动应用程序(或服务)添加了一些额外的字段 - 明确地,它们称为 __updatedAt、__version 和 __deleted。如果您请求特定的 Id,那么您还可以获得一个 ETag 来确定有效性。

这些字段允许您进行离线同步。由于您知道上次同步的时间,因此您可以修补每条更新的记录(并发布每条新记录) - 对于 PATCH,包括您上次下载的 __version - 服务器会告诉您是否有其他冲突。完成后,您可以获取自上次同步以来的所有记录(这是一个标准的 oData 查询),然后更新您的 SQLLite 数据库。

这是对需要完成的工作的快速浏览。 BreezyJS 上的 todo-zumo 示例不执行此逻辑 - 如果您查看代码,您会注意到它只是使用本地存储执行简单的缓存 - 对于更复杂的模型几乎没有好处。

关于breeze - 如何在混合移动应用程序上同步 Azure 移动服务 (ZUMO) 和 SQLite 之间的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24815160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com