Ibm mobilefirst IBM Worklight-JSONStore逻辑,用于从服务器刷新数据并能够脱机工作

Ibm mobilefirst IBM Worklight-JSONStore逻辑,用于从服务器刷新数据并能够脱机工作,ibm-mobilefirst,jsonstore,worklight-adapters,Ibm Mobilefirst,Jsonstore,Worklight Adapters,目前,JSONStore API提供了一个load()方法,该方法在文档中说明: 此函数始终存储从适配器返回的任何内容。如果 数据存在,它在集合中重复”。这意味着 如果要通过对已存在的 已填充的集合,您需要在之前清空或删除集合。 但是如果你想保留你已经拥有的元素 如果没有更多的连接和您的 应用程序处于脱机模式,您还需要跟踪 这些是现有的要素 因为API不提供“覆盖”“如果对适配器的调用成功,将替换现有元素的选项,我想知道应该采用何种逻辑来管理数据的脱机可用性和随时刷新的能力?由于承诺,通过嵌套J

目前,JSONStore API提供了一个load()方法,该方法在文档中说明:

此函数始终存储从适配器返回的任何内容。如果 数据存在,它在集合中重复”。这意味着 如果要通过对已存在的 已填充的集合,您需要在之前清空或删除集合。 但是如果你想保留你已经拥有的元素 如果没有更多的连接和您的 应用程序处于脱机模式,您还需要跟踪 这些是现有的要素

因为API不提供“覆盖”“如果对适配器的调用成功,将替换现有元素的选项,我想知道应该采用何种逻辑来管理数据的脱机可用性和随时刷新的能力?由于承诺,通过嵌套JS代码来管理所有失败案例并不是很明显


谢谢你的建议

实现这一目标的一种方法:

  • 用于创建您自己的加载方法(即加载和覆盖)。您应该可以访问JSONStore实例中保存的所有变量(集合名称、适配器名称、适配器加载过程名称等)——您可能会在下面的InvokeProcess步骤中使用这些变量

  • 打电话确认没有本地更改

  • 调用以获取数据,您需要的所有变量都应该在enhance上下文中提供

  • 查找文档是否已存在,然后单击“确定”。使用
    {push:false}
    使JSONStore不会跟踪该更改

  • 用于添加新的/更新的文档。使用
    {push:false}
    使JSONStore不会跟踪该更改

  • 或者,如果该文档存在,您可以使用它进行更新

  • 或者,您可以使用并再次调用以刷新数据

有一个示例演示了如何使用所有这些API调用


关于承诺,请阅读信息中心和HTML5Rocks。谷歌可以提供更多的信息。

我觉得我正在尝试的是一种非常常见的模式,我认为这需要很多逻辑来管理。我希望将来API将发展到能够非常简单地管理这一点。未来JSONStore的工作在很大程度上取决于客户的需求,一种沟通这一点的好方法是做一个简单的工作。