机房收费系统合作版(二):透过显示上机人数品味如何做到全心全意为人民服务

news/2024/11/7 10:47:24/

​强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan

【前言】

            尘封半年之久的机房合作再次被鹅大组长提上日程,为了积极响应组长的号召最近两日在噼里啪啦的弄机房!逐渐追回了开始合作时信誓旦旦的宣言(详情点击《机房收费系统合作版:开始团队合作之旅》),有木有同感哈?@鹅@思!!!

【趣味横生的优化】

    重新找回了当年的激情后,下面的事就好办了!相比半年前青涩的我们,这次的我们都经历了BS和项目的洗礼后,也不像当年无从下手,而是手到擒来很快界面和功能就逐渐的都出来了。不过也感激当时对需求昏天黑地的讨论,以及当时写下的文档画下的图尽管错误百出。

    下面就一起谈谈在优化的时候解决一个问题。

    首先先说下需求(做过机房的伙伴们可直接飘过),当登录主界面时需要给用户实时的显示当前正在上机的人数。

                                          图示一:主界面

    显示人数到不难做到,数据库中有张上下机的表,只要从数据库中读取取正在上机的记录的条数即可。但是为了增加用户的体验度,如何做到实时那?在这个问题上还是花了点心思,下面就一起展示一下我是如何想的,以及如何实现滴!

     第一步:无疑当这个主界面加载时需要显示,于是乎在窗体加载的时候调用了从数据库查的来显示。

     代码展示:

                                      图示二:主窗体加载代码

      第二步:当点击上机或下机按钮时数量会发生变化。

      代码展示(这里以上机为例,下机时也相同):

          

                                        图示三:上机代码

     第三步:本想到第二步就大功告成,但是忽然脑海中又飘过了学生上机状态界面中的全部下机和选中下机的按钮。

                                                                                           图示四:学生上机状态查询界面

    (1)猛一想,感觉挺简单不和第一步和第二步做的工作一样吗???正当自己在窃喜时忽感并非如此简单,第一步中加载和第二步中的上机和下机按钮执行的事件均在主窗体中,而全部下机事件和选中下机的事件则在学生上机状态查看,如何将事件触发后通知到主窗体让其更新在线人数显示那???正当冥思苦想一筹莫展时,忽然瞄到了主界面上当前时间(见图示一),这时天空飘来五个字——Timer控件监听!为何如此说,来一起看下:

      当前时间显示代码展示:

                                     图示五:当前时间显示代码

     在Timer事件中加入监测上下机表中的数据变化代码展示:

                 

                                  图示六:Timer事件中监测数据库中上机表监测事件

    心中不由的窃喜有了这个自动监听(一秒钟会去数据库中查一次上下机表显示到界面上)不仅这里的跨窗体触发解决了,而且上下机和加载里的显示人数也没有必要,即第一步和第二步可省略。

   (2)窃喜之余忽然脑海中闪现出两个字—“性能”!回想起上述实现的方法,不禁背后冒出一身冷汗,每隔一秒查一次数据库,这得多消耗资源。作为一个致力于成为优秀架构师的我,绝不能将就用这种实现方法。于是果断放弃这种实现方法,换一种新的思路。

    换一种心情,思路马上就来!可以通过共享变量来传递执行事件,用Timer控件来检测这个变量,如果发生变化则更新主界面上当前上机人数。这样一来不是每隔一秒被动去调一下数据库,而是主动当触发事件是改变检测变量的值,让Timer控件去检测变量,这样就大大增加了性能。

    主窗体中定义标识变量代码展示:

    

                                    图示七:主窗体中定义标识变量代码

     全部学生下机和选中学生下机代码展示(这里以选中学生下机为例):

                                图示八:选中学生下机代码

    主界面中Timer事件监控代码展示:

                                图示九:主界面中Timer事件监控代码

    秉着不断追求完美的态度,又思考到全部下机时全部下机成功后才会改变主界面的变量,主界面中的Timer事就不用再去数据库中查直接为显示上机人数的label赋值为零即可,不用再去数据库中查。并且全部下机后应将主界面中遗留的上机信息给清除掉。

    全部下机完善后主界面中Timer事件代码展示:

                                图示十:部下机完善后主界面中Timer事件代码

    至此上机人数显示的实时优化暂告一段落,让我们感受一下最终效果图(以强制全部下机为例):

    在主界面中上机三个人展示:

                                     图示十一:主界面中上机三个人

      最终效果展示:

                                 图示十二:最终效果

【总结】

    只有想不到没有做不到,回味这一路探索自己一直像着了魔似的有干劲,回想自己劲头为什么这么大?不得不说就是自己在测试廊坊一中以及维护考试和评教系统时,当大数据量访问时,代码如果不够好,系统轻则卡住重则崩溃,此时无数用户焦急的等待眼神深深的印在我的脑海中。

    每每脑海中浮现出这些焦急等待眼神时,自己在服微软,谷歌这种国际性的公司之余,也暗自下定决心自己也要严格要求自己不断追求完美,必定自己将来也要做出让全世界人民都使用的好产品。相信只要有这股干劲,这一切即将会发生。


http://www.ppmy.cn/news/432384.html

相关文章

开创交互式电脑绘图先河,虚拟现实之父传奇

作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 伊凡•苏泽兰特(IvanEdwardSutherland)是“计算机图形学之父”,他设计出电脑程序“画板”,开创了交互式电脑绘图的历史。他还发明了世界上第一台头盔式…

Codesys使用梯形图功能实现6层电梯功能

1、序言 电梯控制一直是PLC编程设计的经典应用之一,本文就使用Codesys的梯形图功能实现6层电梯的控制,通过对电梯程序的编写,来熟悉Codesys梯形图功能块的编写方法及使用。 2、功能要求 首先我们需要了解6层电梯的具体配置及功能要求。 2…

详细设计说明书(机房收费系统)

详细设计说明书 1引言 1.1编写目的 本详细设计说明书是在机房收费系统概要设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试作准备。本详细设计说明书的预期读者为小组成员、系统测试维护人员。 1.2背景 A. 所建…

电气绘图软件课程设计

1.概述 Adobe Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作。Photoshop的专长在于图像处理,而不是图形创作。图像处理是对已有的位图图像进行编辑加工处理以及运用一些特殊效果,其重点…

【后端开发】尚硅谷 SpringCloud 学习笔记

文章目录 一、cloud组件二、环境搭建2.1 创建父工程2.2 支付模块构建2.3 消费者模块构建2.3.1 引入RestTemplate2.3.2 远程调用支付模块 三、Eureka3.1 基础知识3.2 单机版Eureka安装3.3 服务注册3.4 Eureka集群3.4.1 Eureka端配置3.4.2 微服务端配置3.4.3 restTemplate负载均衡…

qma7981 源码 驱动_高品质PCB板配单报价,QMA7981-TR

高品质PCB板配单报价 【新巨福电子】深圳新巨福电子有限公司的主打产品有法国施耐德(Schneider):低压开关、ATV系列变频器等工控产器;法国“溯高美”(SOCOMEC):ATYS系列双电源转换开关和A系列多功能电力仪表;台湾“新巨”(ZIPPY)&…

转换开关的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

报告页数: 150 图表数: 100 报告价格:16800 本文研究全球与中国市场转换开关的发展现状及未来发展趋势,分别从生产和消费的角度分析转换开关的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规…

实时数据库:优势和报价

1参考资料 (1)实时数据库简介, http://blog.csdn.net/liqfyiyi/article/details/6862886 (2)实时数据库简介和比较, http://www.cnblogs.com/zljini/archive/2006/05/17/402422.html (3)实时数据…