Laravel使用无限滚动分页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel使用无限滚动分页相关的知识,希望对你有一定的参考价值。
任何人都可以帮我指出如何在Laravel中实现无限滚动的正确方向?
我熟悉Laravel的分页工具,我也熟悉javascript。
我只是无法弄清楚我应该通过ajax发送到我的控制器?
我的意思是什么url参数以及如何在滚动时动态更改?
提前致谢。
你不必通过ajax发送特别的东西
只需通过JS获取已经加载的最后一篇文章的id并执行ajax.get到http://example.com/foo/100500
在routes.php中捕获id,像这样的Route::get('foo/{id}', 'BazController@bar'
然后根据你想要的id来执行控制器中的任何逻辑
例如,从id和id + 20之间的id中选择数据库
更新
考虑到@ugochimbo的问题
让我们说当我们第一次获取页面时,我们会获得类似的东西
<div id="container">
<div id="post-30">Lorem impum dolor</div>
<div id="post-29">Lorem impum dolor</div>
<div id="post-28">Lorem impum dolor</div>
</div>
发生了一件事,例如(scrollTop超过一些px)
然后我们执行类似的事情
嘿,jQuery!给#container的最后一个孩子的gimme“id”//它将是“post-28”
考虑到id,我们对服务器执行ajax查询。
我假设对于无限滚动的最简单实现,我们必须只知道客户端的“id”,没有别的。当然,在任何实际情况下,还有一堆附加信息,例如DESC或ASC或其他任何信息。全取决于你。
假设我们通过ajax查询在服务器端获得
{lastLoadedPostId: 'post-28', order: 'DESC', postsPerQuery: 3}
当然,我们必须做一些准备工作,例如从“lastLoadedPostId”等中删除“post-”
然后我们问我们的数据库
嘿,数据库! Gimme 3帖子,ID小于28,按顺序排列
如果在数据库中使用nonIncremental标识符,则在服务器端获取
{lastLoadedPostId:'qwertyuid',顺序:'DESC',postsPerQuery:3}
在这种情况下,您应该对数据库执行一次额外查询
嘿,数据库!当“qwertyuid”创建时告诉我
嘿,数据库!在“qwertyuid的时间戳”之前创建的Gimme 3帖子
为此,您可以使用LIMIT,OFFSET等命令或您提供的任何数据库,但这已经成为其他问题
以上是关于Laravel使用无限滚动分页的主要内容,如果未能解决你的问题,请参考以下文章
在 laravel 中对数据数组进行分页并在 vuejs 中使用无限滚动的最佳方法
在 Flutter 中如何通过页面 id 创建自动无限滚动分页?