{hero}

deferRender

自:DataTables 1.10

延迟渲染功能控制,可加快初始化速度。

描述

当 DataTables 从 Ajax 或 Javascript 数据源加载数据(分别是 ajaxdata)时,它可以预先创建所有必需的 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);
});

相关

以下选项与之直接相关,在您的应用开发中可能也有用。