带缓存的无限/分页滚动

Posted

技术标签:

【中文标题】带缓存的无限/分页滚动【英文标题】:Infinite/paginated scrolling with caching 【发布时间】:2018-10-05 11:29:50 【问题描述】:

我有一个需要显示长表的要求。它不必一次全部显示,所以 ajax 加载它是(加载前 50 个记录,然后每次用户滚动到/超过最后一行的第 10 行时再获取 50 行)。

但我不确定分页和无限滚动这两者中的哪一个更好。我希望用户在返回页面时能够跳到最后一个滚动到的点(肯定是通过后退按钮;如果我可以随时这样做,但是用户访问页面,那就更好了!)行也可见。同时,为了性能,我想将 ajax 调用的数量限制在尽可能低的水平。

有什么想法吗?

【问题讨论】:

【参考方案1】:
    要实现这样的场景,首先使用一个带有页码和记录数的api作为API调用中的请求参数 对于 Ex-'www.abc.com/v1/tableData/pageId=1&noOfRecords=50' 然后您将获得前 50 条记录。它的响应还应该为您提供调用第一个 api 后数据库中可用的记录总数。 向下滚动时,将 pageId 增加 +1 例如 - 'www.abc.com/v1/tableData/pageId=2&noOfRecords=50' 以同样的方式,您将增加 pageId,直到您检查到目前为止获得的总记录,应该等于总记录,您从 API 密钥获得。 这样你就可以实现它了。 谈到性能,这取决于您是使用分页还是滚动,这并不重要,因为您限制了要显示的记录数。

【讨论】:

以上是关于带缓存的无限/分页滚动的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 分页 + 无限滚动 jQuery

如何使用图像视图制作无限分页滚动视图?

UIScrollView 无限滚动不分页

在 Flutter 中如何通过页面 id 创建自动无限滚动分页?

Laravel使用无限滚动分页

使用 Firebase 进行分页/无限滚动