控制表格的延迟渲染,可以提高初始化的速度。
默认情况下,当DataTables加载Ajax数据或者Javascript数据
(ajaxDT
和 dataDT
)时,
它会提前创建所需的所有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的代理事件。
这个选项用下列的数据类型赋值:
false
打开 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 } ); |
下面的选项是直接相关的,也可能是您的应用程序的开发非常有用。
Translation from DataTables.net, with permission