数据表动态隐藏/显示列太慢
我的目标是使用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:这里有一个将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
,浏览器不必渲染新的。