数据表动态隐藏/显示列太慢

我的目标是使用datatables JQuery插件动态显示/隐藏列。 当我有大约500行时,它会永远这样做。 我正在使用新的Datatables API 1.10.0。

$('#oats-detailed-view-button').click(function (e) { e.preventDefault(); oatsTable.columns([6,7,8,9,10,11,12]).visible(true); }); 

有更有效的方法吗?

遇到性能问题,我总体上建议这些步骤:

  1. 删除不必要的数据
  2. 更改服务对象的选项
  3. 尝试以另一种方式使用服务对象
  4. 解决方法并调试服务对象(如果是开源的,即通知生产者有关结果)
  5. 同意生产者解决问题,或使用其他服务对象

要1:您确定没有关于细胞的不必要的属性,文本和事件吗?

至2:这里有一个将autoWidth设置为false的提示,但在其他线程中没有帮助。 在jQuery DataTables中隐藏列时的性能问题

在DataTables API的选项中,还有一个影响性能的可能性: deferRender : http : deferRender – >你确定你的列只有可见吗? 也许浏览器必须首先创建HTML,因为它不是在加载时创建的?

此外,在DataTables手册/ FAQ中解释了通过改变它的构建方式来加速表: http : //datatables.net/faqs/index (向下滚动到“DataTables运行缓慢”)。

到3和4:我可以想到有两个html div容器无缝地放在旁边。 div 1包含第1列到第5列, div 2包含第6到12列。然后通过打开和关闭div 2,所有列将立即变为可见/不可见。 我可以想象如果你只使用visibiliy:hidden 而不 display:none ,浏览器不必渲染新的。