deferRender
自:DataTables 1.10
延迟渲染功能控制,可加快初始化速度。
描述
当 DataTables 从 Ajax 或 Javascript 数据源加载数据(分别是 ajax
和 data
)时,它可以预先创建所有必需的 HTML 元素,或等到每行的单元格实际需要显示时再创建。此选项提供了控制此行为的功能。
这实际上是一个性能参数 - 当使用大型数据集时,创建数千个 DOM 节点操作可能需要大量时间。此选项允许 DataTables 仅在需要时创建节点(表主体中的行和单元格),例如,为绘图(必须启用分页才能生效)。
例如,为了帮助说明这一点,如果您加载了一个带有 10,000 行的数据集,但分页显示长度仅为 10 条记录,那么启用延迟渲染后,DataTables 仅会创建 10 行,而不是创建所有 10,000 行。然后当最终用户对数据进行排序、分页或筛选时,将自动创建下一次显示所需的那些行。这实际上将创建行的负担分散到了页面的整个生命周期中。
请注意,启用此选项后,不言而喻的是,并非所有节点始终在表格中可用,因此,当使用 API 方法(例如 columns().nodes()
)时,您必须考虑到这一点。以下显示了如何使用委托事件处理此类情况的示例。
禁用此选项的唯一原因是,如果您必须让所有 DOM 元素都可用,即使其中一些元素当前不在文档中也是如此。
类型
该选项可以是以下类型:
默认
- 值:
true
示例
禁用延迟渲染
new DataTable('#myTable', {
ajax: 'sources/arrays.txt',
deferRender: true
});
使用延迟渲染的事件
var table = new DataTable('#myTable', {
ajax: 'sources/arrays.txt'
});
table.on('click', 'tbody td', function () {
alert('Clicked on: ' + this.innerHTML);
});
相关
以下选项与之直接相关,在您的应用开发中可能也有用。