数据的延迟加载

当使用 DataTables 进行服务器端处理时,默认做法是由 DataTables 自动进行 Ajax 调用并加载数据,删除表格中可能已存在的所有内容。但是,当表格的第一页已在 HTML 中预加载时,这种做法可能并不总是可取的(您可能这样做是为了确保可访问性或出于性能原因)。

可以通过使用 deferLoading 初始化属性来覆盖此自动 Ajax 调用以获取第一页数据。它有两个用途,首先指示需要延迟加载,还要告诉 DataTables 完整表格中有多少条记录,在本例中为 57(这允许正确显示信息元素和分页)。

在下面的示例中,HTML 页面中已经有了前 10 行可用数据,因此我们使用 deferLoading 告诉 DataTables 此数据可用,并且它应该等待用户交互(排序、分页等)再进行 Ajax 调用。

职位 办公室 开始日期 工资
Airi Satou 会计 东京 08 年 11 月 28 日 $162,700
Angelica Ramos 首席执行官 (CEO) 伦敦 09 年 10 月 9 日 $1,200,000
Ashton Cox 初级技术作者 旧金山 09 年 1 月 12 日 $86,000
Bradley Greer 软件工程师 伦敦 12 年 10 月 13 日 $132,000
Brenden Wagner 软件工程师 旧金山 11 年 6 月 7 日 $206,850
Brielle Williamson 集成专家 纽约 12 年 12 月 2 日 $372,000
Bruno Nash 软件工程师 伦敦 11 年 5 月 3 日 $163,500
Caesar Vance 售前支持 纽约 11 年 12 月 12 日 $106,450
Cara Stevens 销售助理 纽约 11 年 12 月 6 日 $145,600
Cedric Kelly 高级 JavaScript 开发人员 爱丁堡 12 年 3 月 29 日 $433,060
职位 办公室 开始日期 工资
  • JavaScript
  • HTML
  • CSS
  • Ajax
  • 服务器端脚本
  • 注释

下面显示的 JavaScript 用于初始化此示例中显示的表格

$('#example').DataTable({ ajax: 'scripts/server_processing.php', deferLoading: 57, processing: true, serverSide: true });
new DataTable('#example', { ajax: 'scripts/server_processing.php', deferLoading: 57, processing: true, serverSide: true });

除了上述代码之外,还加载了以下 JavaScript 库文件以用于此示例

    以下显示的 HTML 是原始 HTML 表格元素,在增强 DataTables 之前

    此示例使用了一些额外的 CSS,除了从库文件中加载的内容之外(如下所示),以便正确显示表格。下面显示了所使用的附加 CSS

    以下 CSS 库文件已加载以用于此示例,以提供表格样式

      此表格通过 Ajax 加载数据。下面显示了最新加载的数据。随着加载任何附加数据,此数据将自动更新。

      用于为此表格执行服务器端处理的脚本如下所示。请注意,这只是使用 PHP 的一个示例脚本。服务器端处理脚本可以使用任何语言编写,使用 DataTables 文档中描述的协议

      其他示例