Datatables.net用于大型数据集

时间:2015-02-18 01:03:45

标签: jquery datatable

我正在阅读http://www.datatables.net/examples/data_sources/server_side.html及其示例,但这很难遵循。甚至https://datatables.net/manual/server-side也很明显。

在我走这条路之前,我无法回头,任何使用过Datatables的人都可以为我确认以下内容:

  1. 我可能最终拥有一个包含数千条记录的大型数据集;我可以这么做,所以最初只加载第一个,比方说10条记录。然后,如果用户点击“下一页”按钮,则显示记录11-20,如果再次点击“下一页”,则显示21-30,依此类推?每次从数据库(通过ajax / webservice)加载,以便用户快速。

  2. 我可以这样做,搜索栏会搜索数据库中的整个数据集吗?我可能需要过滤大约3列(例如用户名,电子邮件地址,邮政地址)。

  3. 如果我可以做这两件事,那么Datatables可以为我工作。因此,如果有经验的人可以分享他们在上述问题方面的经验,那将是很棒的。谢谢。

1 个答案:

答案 0 :(得分:1)

同时回答1和2:是的,这正是服务器端功能的工作方式,并且很容易实现。将对象发送到服务器端组件,其中包含有关要搜索的内容和要返回的内容的信息(等于您一次在页面上指定的元素数),并且响应是仅包含足够数据的JSON对象在一个页面中。您只需在创建数据时设置以下选项

"serverSide": true,
"ajax": "yourscript.php"

查看他们在此提供的示例:http://www.datatables.net/examples/data_sources/server_side.html 拉起镀铬检查器/ firebug并观察网络选项卡。您可以看到每次进行寻呼和搜索时来回发送的有效负载(数据表负责为您构建此负载,但它可以让您了解它是如何工作的)。在同一页面上,您可以在选项卡中看到用于设置数据表客户端的javascript,然后是用于设置服务器端的php脚本。出于某种原因,第二个服务器端脚本似乎不在该页面上,但您可以在此处找到它:https://github.com/DataTables/DataTables/blob/master/examples/server_side/scripts/ssp.class.php

编辑1:更改信息文本将其添加到您的选项中:

language: {
        "info": "page _PAGE_ of _PAGES_"
    }