这是我的可处理json文件的数据表:
var table = $('.table').DataTable({
"lengthMenu": [[10, 25, 50,100, -1], [10, 25, 50,100, "All"]],
"pageLength": 10,
"data":{{ output.data|raw }},
效果很好。
为了更快地获取数据表,我添加了以下行:
var table = $('.table').DataTable({
"serverSide": true,
"lengthMenu": [[10, 25, 50,100, -1], [10, 25, 50,100, "All"]],
"pageLength": 10,
"data":{{ output.data|raw }},
"processing": true,
现在我得到了错误
DataTables警告:表格ID = DataTables_Table_0-无效的JSON回应
json直接来自带有数据的json文件。
documentation on the serverSide
option解释:
DataTables具有两种基本的操作模式:
客户端处理-过滤,分页和排序计算都在Web浏览器中进行。
服务器端处理-过滤,分页和排序计算全部由服务器执行。
serverSide
表示整个客户端上不存在原始数据。客户端仅保留从HTTP端点发送的数据的排序视图和分页视图,该HTTP端点是用来将这些页面传达给客户端的。
如果将所有数据发送到客户端,则可能不打算使用服务器端处理。
如果您的问题是对数据进行排序和分页太慢(因为您的数据包含成百上千的记录),那么您可能确实希望切换到服务器端处理。第一步是停止指定serverSide: true
选项,而是将data
选项与目标URL一起使用。然后,您需要在URL处写一个服务器端端点,该端点在被请求时执行必要的转换。请参阅ajax
开始使用。