为 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 预先缓存数据以在移动应用程序中离线工作吗?