datagrid有个属性autoRowHeight,其作用描述为:“定义是否设置基于该行内容的行高度。设置为 false,则可以提高加载性能”,默认值为true。
问题描述
当layout布局里有datagrid或treegrid时,若autoRowHeight设置为true,展开layout布局时可能出现卡顿情况,特别在datagrid的行记录数量大时更为明显。
原因分析
当展开layout时,通过调试工具的性能记录结果如下:


可以看到展开时,"_478"方法的耗时占了很大比重(其主要在计算行样式的高度、宽度,共3000ms+,造成画面卡顿、卡死,这是无法接受的),通过调试器的调用堆栈:

可跟踪到调用"_478"的方法"_474",其中有判断autoRowHeight的值。
当把autoRowHeight参数设为false时,则不再执行"_478方法",展开layout性能记录如下:

可以看到在110ms左右即完成展开,展开过程无卡顿现象。
解决
datagrid的autoRowHeight参数设为false。
其它优化拓展
datagrid的columns属性的width参数也应该设置一个宽度值,提高加载性能。
##############相互学习交流,以上内容有错误请指点#############
版权:原创文章,未经博主允许不得转载。https://blog.youkuaiyun.com/RONEL9/article/details/80241631
本文探讨了在使用datagrid时遇到的卡顿问题,并详细分析了导致这一问题的原因。通过调整autoRowHeight属性为false,有效提升了加载性能,解决了卡顿问题。
1094





