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