【问题标题】:IBM JsonStore FindAll with filter ot without Filter not working in IOS when the records count is 50k当记录数为 50k 时,带有过滤器的 IBM JsonStore FindAll 没有过滤器在 IOS 中不起作用
【发布时间】:2020-04-27 01:01:08
【问题描述】:

嗨,我有一个启用了加密的 JSONSTORE,我有一个名为 Assets 的商店,我存储多达 50k+ 条记录,我尝试使用 JSONStore 中的过滤器选项检索所有记录的唯一值,它在android 设备 但是当涉及到 IOS 时,API 会继续加载而没有任何结果/错误。 WL.JSONStore.get("Assets").findAll({filter : ["ASSETID"]}) WL.JSONStore.get("Assets").findAll() 我正在使用 Cordova IOS -> 4.5.4 JSONStore 插件 -> 8.0.2019121604 (尝试最新,结果相同)

【问题讨论】:

  • Android 和 iOS 有不同的内存管理方案(完全由操作系统管理)。它适用于小型单元吗?可能是 20 K 甚至高达 50K。
  • 抱歉我没试过,试一试
  • @VivinK for 10k - 30sec , 20k - 1min, 30k - 1m30sec 来获取 40k 本身的数据它几乎 5 分钟没有返回任何结果

标签: ios ibm-mobilefirst jsonstore


【解决方案1】:

您能解释一下为什么要尝试将 50k 记录加载到内存中吗?这通常是糟糕的设计,在给定的时间,应用程序中不可能需要 50k 条记录。您应该始终查询您感兴趣的记录子集。 如果您想在列表中显示所有 50k,您仍然应该对结果进行分页并显示它们。

行为取决于设备上的可用内存,以及 iOS 的内存管理。

此外,加载如此多的记录会导致 iOS 终止后台应用程序,从而导致用户体验不佳。

【讨论】:

  • 嗨,不要得出结论,请寻求解释我们并没有尝试加载整个 jsonstore 集合,我们只需要所有记录的单个键值对,我们需要它,因为我们正在比较它与数据库交叉验证我们是否拥有所有更新的记录
  • 嗯,问题中提到的 findAll() API 确实会将所有记录加载到内存中。
猜你喜欢
  • 2017-05-31
  • 1970-01-01
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-17
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多