反馈已提交

网络繁忙

折叠树性能优化方案

  • 文档创建者:知识库
  • 历史版本:2
  • 最近更新:Suki陈 于 2023-06-30
  • 1. 概述

    随着越来越多的用户,对报表样式需求日益增多,折叠树由于样式美观,使用也越发增加。

    因而也造成了很多性能上的使用卡顿,本文档从排查步骤、推荐功能的角度,对折叠树的性能优化进行总结整理。

    2. 排查整体导图

    注:每个情况对应的方案介绍请参见本文第三章、第四章。

    2.png

    3. 插件优化-折叠树(数据量大)

    3.1 新计算引擎插件

    新引擎实验性功能

    包含对折叠树性能的优化,主要分为异步取数及非异步取数。针对大数据量的折叠树控件,优化效果好,尤其异步取数。因此,若用户有万级以上的折叠树展示需要,可优先使用新引擎下的异步取数折叠树。

    3.1.1 原理

    1)异步取数折叠树

    主要针对结构比较标准的单棵纵向折叠树,通过异步取数+异步加载,从取数阶段就进行折叠树性能的优化。

    场景限制(只支持同时满足以下条件的场景):

    • 单数据集

    • 折叠树按钮纵向排布

    • 数据列公式仅支持sum()汇总和行内计算

    • 单棵折叠树

    • 折叠树按钮所在行的数据列左父格需设置为折叠树按钮所在单元格

    • 去掉多余的空白行列,因为占位的空白行列仍然要满足第 5 条规定,一般来说为了保证能正常使用,尽量不要留空白行列。

    2)非异步取数折叠树

    主要优化前台数据加载的性能问题,实现前台异步加载,优化折叠树的前端性能。

    支持场景:

    • 折叠树纵向扩展

    • 单棵折叠树

    此类非异步主要适用于:不满足异步取数的折叠树场景,仅在前端展现上进行优化。

    3.1.2 设置方法

    请参见:模板计算属性

    4. 模板设置排查

    可以检查模板设置,出现不少由于模板本身设置复杂,格间运算,条件属性等导致的性能问题。

    4.1 模板公式计算复杂

    场景建议
    模板公式设置较多导致卡顿减少公式计算,优化 sql
    格子间的过滤和计算过多

    数据集优化整合,减少不必要的前台计算

    减少模板里的计算

    优化服务器性能

    模板参数格子过滤实现折叠树

    改成树数据集的方式

    这种根据控件值进行过滤的效果,不要用过滤条件,改成sql的形式

    总结:使用折叠树的模板,不在单元格做过多的过滤及公式计算,尽量都在数据集 sql 中进行提前计算。

    4.2 折叠树单元格形态设置复杂

    场景
    建议
    单元格使用控件及数据字典导致折叠树本身已经是控件加载,对单元格不需要再次设置数据字典,直接拖数据集字段即可
    单元格设置了形态(显示值和实际值不一致)删除单元格形态设置,保持实际值和显示值一致

    总结:折叠树按钮所在单元格,尽量实际值和显示值保持一致,分开设置会大大影响性能。

    4.3 条件属性

    场景
    建议
    大量的计算公式和条件属性

    删除重复的条件属性,装了性能优化插件,在数据量较少的情况下有较大优化

    另外将数据过滤写到参数查询中,减少计算公式

    使用条件属性设置的折叠树

    条件属性做折叠树会传递动态参数,每次传参都会触发一次模板计算,都会重新取数;

    数据多的话,比较耗时,建议用树节点按钮

    总结:模板条件属性过多,或者是不使用树节点按钮,使用条件属性实现,都会造成折叠树性能下降,因此对待模板设置,使用树节点按钮+树数据集,另外去除不必要的条件属性设置。

    4.4 js事件

    场景
    建议
    JS一键展开折叠树

    主节点数据多,js会循环执行

    建议直接展示明细表或者用数据钻取实现查询批次明细的效果

    总结:用户若无一键展开需求,不推荐使用;若使用,在数据量较大时,会对折叠树性能有一定影响。




    附件列表


    主题: 性能优化
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持