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

时间:2014-06-27 15:17:22

标签: jquery datatables

我的目标是使用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 个答案:

答案 0 :(得分:1)

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

  1. 删除不必要的数据
  2. 更改服务对象的选项
  3. 尝试以另一种方式使用服务对象
  4. 解决方法并调试服务对象(如果是开源,即通知制作人有关调查结果)
  5. 同意制作人解决问题,或使用其他服务对象
  6. 要1:您确定没有与细胞有关的不必要的属性,文本和事件吗?

    To 2:这里有一个将autoWidth设置为false的提示,但在另一个帖子中没有帮助。 Performance issues when hiding columns in jQuery DataTables

    在DataTables API的选项中,还有一种影响性能的可能性:deferRenderhttp://datatables.net/reference/option/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,则浏览器不必渲染新内容。