为 iOS/Android 移动应用缓存数据以使用分页

Posted

技术标签:

【中文标题】为 iOS/Android 移动应用缓存数据以使用分页【英文标题】:Caching Data for iOS/Android mobile Apps to work with Pagination 【发布时间】:2015-03-16 15:41:02 【问题描述】:

给出以下场景。我在 ios/android 上有一个移动应用程序,它通过 REST 连接到服务器后端。在应用程序中,您可以显示新闻项目。您是项目的创建者,您可以创建、编辑和删除这些项目。在应用程序的一个页面上有一个新闻提要,您可以在其中查看其他应用程序用户创建的新闻项目的概述。 iOS/Android 应用程序将这些新闻项目的数据存储在本地 sqlite 数据库中。当用户向下滚动项目列表时,应该加载更多项目(如果有的话)。

我要解决的任务是如何将项目缓存在 SQLite 数据库中以使用分页。当项目在服务器上被删除或重新排序时,有时必须更新缓存。使用分页时必须考虑到这一点。

这是我目前使用的算法:

    如果提要页面打开,请检查是否有任何项目要显示在 sqlite数据库

    如果为真,则从数据库中检索 p 个偏移量 offset=0 的项目并联系服务器以检查是否应更新或删除前 p 个项目 如果需要更新或删除项目,请对显示的项目执行这些操作 else 联系服务器获取偏移量 offset=0 的 p 项并显示它们

    如果用户向下滚动开始 1. 再次使用 offset = offset + p

移动应用的缓存数据如何与分页一起使用?

【问题讨论】:

当用户滚动时,您可以使用数据库和查询数据库作为从数据库中选择 x 行.. @confile 你找到问题的答案了吗? @confile 我也在考虑在移动应用程序中缓存分页的同时。但是,我发现没有一个单独的解决方案,它取决于您的应用程序域。我还没有找到专门解决关于我的应用程序 的这个问题的文章,而且我想我不会。但是,我确实找到了一篇针对特定域回答此问题的文章。 medium.freecodecamp.org/…。这对我(也可能不是你)来说不是一个完整的解决方案,但这个例子帮助我重新解决了这个问题。 【参考方案1】:

问题是您希望将数据存储多长时间。您可以存储部分获得的所有数据:

"否则联系服务器获取偏移量=0 的 p 项并显示它们"

并为数据设置一些时间戳。当时间戳过期时,您会删除数据(在后台)。通过这种方式,您可以节省大量请求,并且不会浪费内存。

希望这可以帮助您解决问题。

【讨论】:

以上是关于为 iOS/Android 移动应用缓存数据以使用分页的主要内容,如果未能解决你的问题,请参考以下文章

我们为 Cordova iOS/Android 移动应用程序使用啥 OAuth 2.0 重定向 URI?

我可以使用 AppSync 预先缓存数据以在移动应用程序中离线工作吗?

利用HTML5开发移动应用都有哪些优点

为 iOS/Android 应用程序存储敏感数据的最佳方式是啥?

Firebase 两个数据库(iOS、Android)

以编程方式在移动设备上设置电子邮件帐