我的目标是使用数据表 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 中的列时出现性能问题 https://stackoverflow.com/questions/24129953/performance-issues-when-hiding-columns-in-jquery-datatables
在DataTables API的选项中,还有另一种可能影响性能:deferRender
: http://datatables.net/reference/option/deferRender http://datatables.net/reference/option/deferRender-> 您确定您的列仅可见吗?也许浏览器必须首先创建 HTML,因为它不是在加载时创建的?
此外,在 DataTables 手册/常见问题解答中解释了通过改变表的构建方式来加速表的速度:http://datatables.net/faqs/index http://datatables.net/faqs/index(向下滚动到“DataTables 运行缓慢”)。
对于3和4:我可以想到有两个htmldiv
容器无缝地放置在旁边。div
1 包含第 1 至 5 列,div
2 包含第 6 至 12 列。然后通过切换div
2 打开和关闭,所有列都会立即变得可见/不可见。我可以想象如果你只使用visibiliy:hidden
and not display:none
,浏览器不必渲染新的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)