数据表中的Laravel分页

时间:2017-12-26 21:17:45

标签: laravel

我在Laravel中使用DataTable插件。我有一些3000条目的记录 但是当我加载该页面时,它会在浏览器中加载所有3000条记录,然后创建分页,这会减慢页面加载速度。

如何解决这个问题或纠正方法

2 个答案:

答案 0 :(得分:0)

使用服务器端处理。 从一些Laravel套餐获得帮助。如Yajra的:https://yajrabox.com/docs/laravel-datatables/

答案 1 :(得分:0)

通常,您可以在前端,后端(服务器或数据库端)或两者的组合中解决分页。

没有软件包的服务器端处理意味着设置TOP / FETCH或从服务器返回数据行。你也可以加载一小部分(比如20)然后当用户滚动到列表的底部时,再加载20左右。我也提到了包含前端处理的原因,因为我不确定你的用例是什么,但我认为任何给定用户实际上需要一次看到3000行是非常罕见的。

鉴于数据表似乎具有分页数据的内置功能,我认为@tersakyan本质上是正确的 - 您想要的是某种形式的后端过滤或数据行分页以限制发送到的数据前端。我不知道该软件包是否适合您,或者您的设置是什么样的,但是也可以直接从DataBase通过SQL返回数据(例如使用TOP / FETCH)实现分页,也可以在Controller中实现分页。或者通过跟踪数据页面和“一次加载页面”来从服务器然后进入表中来进行服务。您只需要一个唯一的关键来关联每个"一组页面"对于特定的请求。

但是对于性能,您希望避免对大型数据集进行大型数据请求和操作。因此,您在应用程序的任何阶段使用它来限制获取或处理的数据的次数越多,原则上应用程序的性能就越高。