我在Laravel中使用分页来加载大量数据。数据变化迅速。问题在于,随着用户滚动数据,新行将插入到顶部。这就产生了一个问题,即在用户加载页面1和页面2之间的时间内,用户看到重复的行被从页面1推出到页面2。例如:
数据:
用户A使用-> simplePaginate(2)加载结果。
第1页加载:
结果:
在数据库中插入一行。
数据:
用户A现在在页面#1和页面#2上滚动浏览其结果:
结果:
用户A现在刚刚看到:
加载第二页时,是否可以轻松解决这一问题?
用户A应该看过
当用户A加载页面2并说“嘿,现在顶部有新结果”时,传递一些信息也很酷。
答案 0 :(得分:1)
在第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();