这是关于使用JQuery Datatables插件:
我想使用我的服务器端源,但就过滤器而言,如果你知道我的意思,我宁愿保持'DOM方式',即不向服务器发送新的XHR请求但只是简单地处理已经填充的内容。
任何推荐/普遍接受的最佳做法?
答案 0 :(得分:0)
这可能不是你正在尝试实现的正确方法,但是当我一直在使用dataTables时,我开始使用CSV文件在第一次加载页面时将表格填充到DOM完成初始化dataTable。所以只有一个请求。我现在正在做同样的事情,但是使用Google Spreadsheet而不是CSV文件,这非常有效!
我会指出我的桌子很基本而且不是很大。
但我会通过使用AJAX首先从您的php页面检索数据,创建HTML表格然后初始化dataTable来解决这个问题。
像......这样的东西。
$.ajax({
type:'GET',
url:'../yourdatasource.php',
success: function(data){
// Your code to create the HTML table
$('#yourTable').dataTable();
}
});
正如我所说,可能有更好的方法来做到这一点,但我喜欢保持简单。
答案 1 :(得分:0)
DOM处理:
- 加载源数据
- 使用源数据
服务器端处理
- 加载源数据
- 所有交互都被发送为XHR请求。
(来源:Enhancing-HTML-tables-using-a-JQuery-DataTables-pl“在这种模式下,插件只处理与用户的交互,所有处理都在服务器端完成。”)< / p>
因此,您无法将这两个方面连接在一起,因为DOM使用已加载的数据并且服务器端使用数据(数据库)进行实时操作。如果你想在服务器端处理中启用这个功能,我认为这是个坏主意,因为在DOM中是“过滤”而在服务器端则是“搜索”。如果他们之间最大的区别。如果用户想要“过滤”数据,则无法确保结果正确。
如果你有很多记录,你应该使用服务器端
否则加载数据并使用DOM工作。
试试这个..
http://datatables.net/ref#bServerSide
我希望这可以帮助你,因为我 祝你有愉快的一天
修改强>
如果要从远程服务器加载数据并过滤通过DOM过滤器加载的数据,可以使用“sAjaxSource”:“xhr.php”来加载数据,但是不要指定/启用bServerSide。它工作正常。