datatable是一款基于jQuery表格插件,在目前做的项目中用到了它,所以也了解了一点点。虽然它功能强大,但是对于菜鸟来说也折腾了不少时间。
datatable是一款基于jQuery表格插件,在目前做的项目中用到了它,所以也了解了一点点。虽然它功能强大,但是对于菜鸟来说也折腾了不少时间。
在正式讲它之前先放两个链接:
我在具体实践中用到的datatable的功能主要是分页和全局搜索。
分页分为客户端分页和服务器端分页。
客户端分页
客户端分页即将数据全部从服务器请求回来之后客户端再用js将其分页展示的情况。这种客户端分页显示的方式适用于数据量小的时候,一旦数据量过大,在服务端请求数据的过程就非常之慢,我一开始尝试用客户端分页的方式时,从数据库请求上千条数据至少要用3秒。他的实现方法倒是很简单。再用它之前先填入两个js库,一个是jQuery的库,一个是datatable的库。
//code.jquery.com/jquery-1.12.4.js
https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js
使用的时候只需要调用构造函数:$().DataTable();
。
我的项目之中连调用函数的功夫都省了,我用的模板已经封装好了一些功能,用的时候在table里添加相应的类名就可以了。但是我的模板优点蠢的一点是table的列数必须大于等于5列才能实现分页搜索,我也不明白为什么,可能是封装的时候改了一些设置?
服务器端分页
服务器端分页适用于数据量大的情况。稍微要复杂一些,一言难尽。
多看几遍官网上这个例子就懂了。我这里解释一下例子里的代码:
HTML
1 | //既然是一个table,在HTML文档里首先声明这样的一个表格,id="example" |
javascript
1 | //调用$().DataTable();初始化表格,如果有两张表都要初始化的话,在初始化第二张表之前先把前一张表的初始化消除掉:$("#example").dataTable().fnDestroy(); |
服务器端处理程序,假设是objects.php
1 |
|
大体这样子datatable就可以为你工作了。分页异步加载数据,搜索功能都没问题,但是数据量太大了的话可能还是有点慢。
datatable是一个很强大的插件,更多更强大的功能还有待我去挖掘探索。