我有一个动态添加数据到DataTables的功能。这是功能。
function fnClickAddRow() {
for (i=0; i<10000; i++) {
$('#example').dataTable().fnAddData( [
giCount+".1",
giCount+".2",
giCount+".3",
giCount+".4" ]
);
}
}
此功能将动态附加到我的 #example 数据表中,但在操作过程中屏幕看起来悬挂,有没有办法使用“处理”显示加载/处理标志:是的,
答案 0 :(得分:10)
没有通过API触发“处理”消息显示的功能,但有一种解决方法。
您需要使用bProcessing: true
(对于DataTables 1.9)或processing: true
(对于DataTables 1.10)启用处理指示器。
显示ID为example
的表格的处理指标:
$('.dataTables_processing', $('#example').closest('.dataTables_wrapper')).show();
隐藏ID为example
的表格的处理指标:
$('.dataTables_processing', $('#example').closest('.dataTables_wrapper')).hide();
值得一提的另一件事是,由于某种原因,在我添加setTimeout
延迟100毫秒之前,处理指标才会显示。
在旁注中,为了提高性能,您需要将false
指定为fnAddData()
的第二个参数,以表示不需要重新绘制。完成添加行后,您可以调用fnDraw()
重绘表格,请参阅this jsFiddle。
如果先将数据放入数组然后再调用fnAddData()
一次,则可以进一步提高性能。
请参阅this jsFiddle以获取代码和演示。
答案 1 :(得分:0)
现在似乎有processing() plugin允许您通过API执行此操作。
安装插件后,可以调用它(例如):table.processing([true/false]);