gpt4 book ai didi

ibm-mobilefirst - IBM Worklight - 用于从服务器刷新数据并能够离线工作的 JSONStore 逻辑

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

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

This function always stores whatever it gets back from the adapter. If the data exists, it is duplicated in the collection". This means that if you want to avoid duplicates by calling load() on an already populated collection, you need to empty or drop the collection before. But if you want to be able to keep the elements you already have in the collection in case there is no more connectivity and your application goes for offline mode, you also need to keep track of these existing elements.



由于 API 不提供“覆盖”选项来替换现有元素,以防对适配器的调用成功,我想知道应该采用什么样的逻辑来管理数据的离线可用性和随时刷新的能力?由于 promise ,通过嵌套 JS 代码来管理所有失败案例并不是那么明显......

感谢您的建议!

最佳答案

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

  • 使用 enhance创建您自己的加载方法(即 loadAndOverwrite )。您应该有权访问保存在 JSONStore 实例中的所有变量(集合名称、适配器名称、适配器加载过程名称等——您可能会在下面的 invokeProcedure 步骤中使用这些变量)。
  • 调用 push以确保没有本地更改。
  • 调用 invokeProcedure要获取数据,您需要的所有变量都应该在enhance 的上下文中提供。
  • 查找文档是否已经存在,然后remove它。使用 {push: false}因此 JSONStore 不会跟踪该更改。
  • 使用 add添加新的/更新的文档。使用 {push: false}因此 JSONStore 不会跟踪该更改。
  • 或者,如果文档存在,您可以使用 replace更新它。
  • 或者,您可以使用 removeCollection并调用 load再次刷新数据。

  • 有一个示例展示了如何使用所有这些 API 调用 here .

    关于 promise ,阅读 this来自信息中心和 this来自 HTML5Rocks。谷歌可以提供更多信息。

    关于ibm-mobilefirst - IBM Worklight - 用于从服务器刷新数据并能够离线工作的 JSONStore 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18640123/

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