首页 > 解决方案 > 如何使用 json 文件对我的数据表进行服务器端处理?

问题描述

这是我使用 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 文件。

标签: jqueryjsondatatables

解决方案


选项的文档serverSide说明:

DataTables 有两种基本的操作模式:

  • 客户端处理——过滤、分页和排序计算都在网络浏览器中执行。

  • 服务器端处理——过滤、分页和排序计算都由服务器执行。

serverSide: true意味着原始数据作为一个整体在客户端上不存在。客户端仅保存从 HTTP 端点发送的数据的排序和分页视图,这些端点用于将这些页面传达给客户端。

如果您将所有数据发送到客户端,您可能不打算使用服务器端处理。

如果您的问题是数据的排序和分页速度太慢(因为您的数据包含数百或数千条记录),那么您可能确实希望切换到服务器端处理。第一步是停止指定data选项,而是使用ajax带有目标 URL 的选项。然后,您需要在 URL 处编写一个服务器端端点,以便在请求时执行必要的转换。请参阅有关服务器端处理的 DataTables 示例文档以开始使用。


推荐阅读