分页不考虑变化的结果
Paginate does not account for changing results
我在 Laravel 中使用分页来加载大量数据。快速变化的数据。问题是当用户滚动数据时,新行被插入到顶部。这会产生一个问题,即用户会在用户加载第 1 页和第 2 页之间的时间内看到重复的行从第 1 页推入第 2 页。例如:
数据:
- D
- E
- F
用户 A 使用 ->simplePaginate(2) 加载结果。
第 1 页加载:
结果:
- D
- E
向数据库中插入一行。
数据:
- C
- D
- E
- F
用户 A 现在滚动浏览他在第 1 页上的结果并加载第 2 页:
结果:
- E
- F
用户A现在刚刚看到:
- D
- E
- E <-- 错误
- F
有什么方法可以让我在加载第二页时轻松解决这个问题?
用户A应该看过
- D
- E
- F
当用户 A 加载第 2 页说 "Hey, there are new results at the top now."
时传递一些信息也非常酷
在第 1 页取一个时间戳,然后在查询中添加一个附加子句,断言 created_at
在时间戳之前。
$beforeTime = $request->input('before_time', Carbon::now());
$items = Item::where('created_at', '<=', $beforeTime)->paginate(2);
最后,确保将 before_time
参数附加到分页链接:
echo $items->appends(['before_time' => $beforeTime])->links();
我在 Laravel 中使用分页来加载大量数据。快速变化的数据。问题是当用户滚动数据时,新行被插入到顶部。这会产生一个问题,即用户会在用户加载第 1 页和第 2 页之间的时间内看到重复的行从第 1 页推入第 2 页。例如:
数据:
- D
- E
- F
用户 A 使用 ->simplePaginate(2) 加载结果。
第 1 页加载:
结果:
- D
- E
向数据库中插入一行。
数据:
- C
- D
- E
- F
用户 A 现在滚动浏览他在第 1 页上的结果并加载第 2 页:
结果:
- E
- F
用户A现在刚刚看到:
- D
- E
- E <-- 错误
- F
有什么方法可以让我在加载第二页时轻松解决这个问题?
用户A应该看过
- D
- E
- F
当用户 A 加载第 2 页说 "Hey, there are new results at the top now."
时传递一些信息也非常酷在第 1 页取一个时间戳,然后在查询中添加一个附加子句,断言 created_at
在时间戳之前。
$beforeTime = $request->input('before_time', Carbon::now());
$items = Item::where('created_at', '<=', $beforeTime)->paginate(2);
最后,确保将 before_time
参数附加到分页链接:
echo $items->appends(['before_time' => $beforeTime])->links();