使用will_paginate进行无限滚动。问题删除元素

时间:2017-07-05 16:16:07

标签: ruby-on-rails ruby infinite-scroll will-paginate

我正在使用will_paginate和ajax实现无限滚动。每当我按下'加载更多'元素时,它会为我带来集合中接下来的4个元素。目前,一切都很好。但是当我删除某个页面的某些元素时,下一页已经在“加载更多”按钮中建立;因此,下次按“加载更多”按钮时,会跳过一个元素。有谁知道我该如何解决这个问题? (抱歉我的英文)

2 个答案:

答案 0 :(得分:2)

分页宝石在您的使用案例中效果不佳。

解决此问题的最简单方法是:如果您有按以下顺序排序的元素列表: id,在您的下一页请求中发送当前页面上最后一个元素的id,并使用它来偏移下一页。

答案 1 :(得分:1)

发生的事情是分页不是急于加载下一组,而是进行偏移计数

initial index + page_length * (page number - 1)
limit page_length

当你删除一个元素时,它会向前移动该查询的数据库中每个元素的索引。这使得前端元素索引处于与后端不同的状态。

您需要重新加载每个“页面”,从包含已删除元素的页面开始,然后使用最新加载的“页面”,以使前端具有与后端相同的元素索引。