数据的延迟加载
当使用 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 文档中描述的协议。