动态fnAddData时,DataTables显示“Processing ...”标签

时间:2015-07-12 11:21:48

标签: jquery datatables

我有一个动态添加数据到DataTables的功能。这是功能。

function fnClickAddRow() {
    for (i=0; i<10000; i++) {
        $('#example').dataTable().fnAddData( [
         giCount+".1",
         giCount+".2",
         giCount+".3",
         giCount+".4" ]
        );
    }
}

此功能将动态附加到我的 #example 数据表中,但在操作过程中屏幕看起来悬挂,有没有办法使用“处理”显示加载/处理标志:是的,

2 个答案:

答案 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]);