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.csdn.net/RONEL9/article/details/80241631