找回密码
 立即注册

QQ登录

只需一步,快速开始

Erik.Xue 讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2022-11-11 11:57  /   查看:3086  /  回复:0
本帖最后由 Erik.Xue 于 2023-1-28 11:36 编辑

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


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


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

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

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

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

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

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

外联表数据量:36万多条
image.png154415282.png

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

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

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

可以看到:
image.png622949218.png

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

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

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

弹出页面上绑定数据表:
image.png420495910.png

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

image.png854164733.png

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

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

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

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

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


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

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

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

参考demo.fgcc (1.06 MB, 下载次数: 423)

评分

参与人数 1满意度 +5 收起 理由
lxf_007222 + 5

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部