Erik.Xue 发表于 2022-11-11 11:57:33

干货必读提升性能:十二、单元格类型的取舍

本帖最后由 Erik.Xue 于 2023-1-28 11:36 编辑

单元格类型,也可以叫做单元格命令,在活字格中是构成页面的基本元素组成。接下来,就为大家介绍一下在使用单元格命令时的取与舍。


1、下拉框在数据量较大时


相比用过活字格的小伙伴对组合框很熟悉了,长这样:


组合框很好用,可以手动设置下拉的选项,也可以从数据表中生成下拉项:


当然,大家用的比较多的情况应该是从数据库生成项目,为啥捏,一般推荐的做法是维护一张字典表,而下拉项来源于这张字典表,方便我们之后的维护与更新。

那么如果我们的下拉项是从数据库生成的,就会有一种情况,就是数据库表的行数非常多的情况,比如10万行以上,这种情况在各位小伙伴的系统也不算罕见吧~~~

我们就来实验一波,看看如果组合框在选择《从数据库生成项目》时,数据量非常大的情况下的表现。

准备环境:
活字格设计器版本:8.0.103.0
外联表数据库:sqlserver2012 R2
浏览器:Microsoft Edge
外联表数据量:36万多条


将组合框设置为从此数据表中读取数据,运行工程我们来看下组合框读取数据时间:


可以看到,当我们点击组合框下拉按钮时,可以看到组合框从数据库中拉取36万条数据花费了近3秒的时间,这还是在单人操作下,如果在高并发的情况下,多人使用,那么对数据库的压力可想而知,组合框在读取下拉数据时会变得异常缓慢。

那么怎么办呢?最简单的方法,就是勾选组合框设置——《动态加载项目》:


可以看到:


请求加载时间缩减到了600毫秒,情况已经大大改观。那么此时肯定会有小伙伴说,开了这个《动态加载项目》之后,组合框就不能模糊查询了。

确实如此,为什么,动态加载其实就是一点一点的加载数据库的数据,不会一次性把数据全部读取出来后,再一次性显示,所以模糊查询就不支持了。

那我们就用一种“绕的”办法,文本框+弹出页面+数据表的方式,“模拟”出来一个组合框:


弹出页面上绑定数据表:


然后给表格设置按序加载以及查询条件,这样一来就可以动态加载+性能兼顾了。



可以看到,性能也是嘎嘎好~~~

2、选项卡放置过多的子页面

同样地,我们制造一个场景,在使用选项卡时,在选项卡中放置5个子页面,每个子页面都放置一个数据表,然后我们运行起来看看:


如上图所示,可以看到,当这个页面加载时,选项卡中的5个子页面中的数据表全部都进行了加载,也就是说,如果使用了选项卡,那么有多少子页面,在父页面第一次加载时,就要将所有子页面一并全部加载出来。

这样,如果放置过多的子页面,并且子页面的内容比较复杂的话,性能就会下降,出现卡顿的现象。


所以,如果有太多子页面时,可以选择使用页面容器+设置单元格属性命令,动态切换子页面;或者使用标签页+打开标签命令动态的打开标签页子页面。

当然,在8.1版本之后,我们推出了新的功能——组件。那么我们也可以借助《EL-标签页头》+《组件》的组合,实现动态且高效的切换多个子页面,感兴趣的小伙伴可以试试~

以上就是单元格命令在使用时的一些“隐藏知识”,学废了吗?



页: [1]
查看完整版本: 干货必读提升性能:十二、单元格类型的取舍