我有一个函数可以动态地将数据添加到数据表中。这是函数。
function fnClickAddRow() {
for (i=0; i<10000; i++) {
$('#example').dataTable().fnAddData( [
giCount+".1",
giCount+".2",
giCount+".3",
giCount+".4" ]
);
}
}
此函数将动态附加到我的#example数据表中,但在操作过程中屏幕看起来挂起,有没有办法使用“处理”显示加载/处理标志:是的,
最佳答案
没有功能可以通过 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();
另一件值得一提的事情是,由于某种原因,直到我添加了 100 毫秒延迟的 setTimeout
后,处理指示器才显示。
顺便说一句,为了提高性能,您需要指定 false
作为 fnAddData()
的第二个参数,以指示不需要重新绘制。添加完行后,您可以调用 fnDraw()
来重绘表格,请参阅 this jsFiddle .
如果您首先将数据放入数组中,然后调用 fnAddData()
一次,则可以进一步提高性能。
参见this jsFiddle用于代码和演示。
关于jquery - 动态 fnAddData 时,DataTables 显示 "Processing..."标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31367233/