任何人都可以帮我指出如何在Laravel中实现无限滚动的正确方向吗?
我熟悉Laravel的分页工具,而且我也熟悉Javascript。
我无法弄清楚应该通过ajax将什么内容发送到我的控制器?
我的意思是什么url参数以及如何在滚动时动态更改?
提前致谢。
答案 0 :(得分:1)
你不必通过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! Gimme&#34; id&#34; #container的最后一个孩子//它会 be&#34; post-28&#34;
考虑到id,我们对服务器执行ajax查询。
我认为,对于无限滚动的最简单实现,我们必须只知道&#34; id&#34;在客户端,没有别的。 当然,在任何实际情况下,还有一堆附加信息,例如DESC或ASC或其他任何信息。这完全取决于你。
我们说我们是通过ajax查询在服务器端获得的
{lastLoadedPostId: 'post-28', order: 'DESC', postsPerQuery: 3}
当然,我们必须做一些准备工作,例如剪切&#34;发布 - &#34;来自&#34; lastLoadedPostId&#34;等
然后我们问我们的数据库
嘿,数据库! Gimme 3帖子,ID低于28,按照顺序排列
如果您的数据库中使用了nonIncremental标识符,并且您在服务器端获得了
{lastLoadedPostId:&#39; qwertyuid&#39;,order:&#39; DESC&#39;,postsPerQuery:3}
在这种情况下,您应该对数据库执行一次额外查询
嘿,数据库!告诉我什么时候&#34; qwertyuid&#34;创建了 嘿,数据库!在&#34;时间戳之前创建的Gimme 3帖子 qwertyuid&#34;
为此,您可以使用LIMIT,OFFSET等命令或您提供的任何数据库,但它已经是其他问题