当你说Datatable
我假设你正在谈论数据表 https://datatables.net/jQuery 插件。
要激活服务器端分页,您需要通过
"serverSide": true,
像这样:
$('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "/your_url"
});
执行上述操作将激活您的服务器端分页。但您也需要在服务器端进行一些更改。让我们一步步看看他们。
1. 标记时会发生什么serverSide
as true
DataTables 插件将自定义参数添加到 AJAX 调用,其中包含以下信息
order: asc
start: 20
length: 10
// and many more.
你可以检查这个演示链接 https://profile.ashishontech.xyz/datatable并查看传入的参数request当您单击下一页按钮时。
2. 同样,DataTables 插件需要响应一些字段以保留分页 logic.
"draw": 3, // unique ID
"recordsTotal": 57, // total number of records
"recordsFiltered": 57 // total number of filtered records
您可以检查这个演示链接 https://profile.ashishontech.xyz/datatable并看到response这次的数据。
3. 现在更改发生在 API 的服务器端
您需要将这些参数添加为queryParam
对于控制器 API 中 POST 调用中的 GET 和 attr:
order: asc
start: 20
length: 10
4. 服务层变更-DB查询
服务中层,您可以在其中从数据库获取详细信息。
您需要获取记录总数并在搜索查询中传递 LIMIT 子句LIMIT 10, 10
对于MySQL。
E.g.:
SELECT * FROM User LIMIT 20,10;
Use start
and length
计算下一组记录。
这可能会比较棘手,但如果你理解并正确实施,它会很有趣。
详细阅读更多内容here https://ashishontech.xyz/server-side-pagination-jquery-datatable/其中还包含代码和现场演示。