延迟渲染(deferRender)

起始版本号: 1.10.0

控制表格的延迟渲染,可以提高初始化的速度。

说明

默认情况下,当DataTables加载Ajax数据或者Javascript数据 (ajaxDTdataDT )时, 它会提前创建所需的所有HTML元素。当加载大量的数据集时,这个操作所耗费的时间就不能忽视,特别是在旧的浏览器例如IE6-8中运行时。 这个选项允许DataTables在需要的时候,才会创建节点(rows and cells in the table body)。

举个例子来说明,如果你加载一个拥有10,000条记录的数据集到表格,每页显示10条记录, 如果这个选项(deferred rendering)开启,DataTables就不会一次创建10,000行,而是只是创建10行。 如果用户使用了排序,分页或者搜索结果会在下一次显示的时候,才根据需要自动创建行元素。 这实际上是根据分页页面的生命周期来分步的进行创建行。

需要注意的是,如果这个选项打开,正如大家都知道的,不是所有的行Node是可以被访问的, 所以当你使用API的方法时,例如 columns().nodes()DT , 你就必须考虑到这个情况。下面展示了一个例子,演示在这种情况下如何使用jQuery的代理事件。

数据类型

这个选项用下列的数据类型赋值:

默认值

示例

打开 deferred rendering:

1
2
3
4
$('#example').dataTable( {
  "ajax": "sources/arrays.txt",
  "deferRender": true
} );

jquery事件配合deferred rendering使用:

1
2
3
4
5
6
7
$('#example tbody').on( 'click', 'td', function () {
    alert( 'Clicked on: '+this.innerHTML );
} );
$('#example').dataTable( {
  "ajax": "sources/arrays.txt",
  "deferRender": true
} );

相关

下面的选项是直接相关的,也可能是您的应用程序的开发非常有用。

http://datatables.net/reference/option/deferRender

Translation from DataTables.net, with permission