一个web抢答系统

上周日的IT特工向前冲活动举办完了。为了这个活动的一个问题抢答环节。我用了一周的时间弄了一个用于抢答的本地web网站。

从11月的10日,也即是高中的110周年校庆和参加Java省赛的同一天。直到上周日,11月18日。用了一周的时间,从无到有地把这个web网站建立。

这其实对我来说是一个很大胆的尝试。此前只曾做过一些后台的逻辑处理。没有摆弄过前端,服务器的任何东西。

开始的计划是前端使用jqury,后端采用Java Play!框架1.2.5版本。

后来在使用jqury的时候碰到了几个问题,琢磨之后咨询了一下博文。博文提议用Twitter Boostrap作为前端界面。对比之下发现Twitter Boostrap更方便快捷。于是就把前端改换为Twitter Boostrap。博文很热心,在开发的过程中也提供了很多的帮助并帮忙编写了对MySQL数据库的程序接口,真的十分感谢。

在这一周里面,我觉得过得非常充实,不断完善自己的作品,有需求有问题就上网google去,其中w3school提供了很多的帮助。之前没用过html,js,只会java,于是就看别人网站的代码,依葫芦画瓢一般慢慢理解代码的功能,再在w3school上看相关的标签,属性。再应用到自己的东西上。这是一个非常有趣的过程。

直至上周日的实际使用,这个系统的原理是这样子的,通过给每一个队伍分配一个登陆的id用于标示队伍,然后当不同的队伍按下网站上的抢的同时,js将给服务器发送一个 XMLHttpRequest,获取服务器的本地时间传进MySQL数据库里面。同时各个队伍的页面上也轮询服务器获取题目显示和获取数据库中各队伍答题的时间,经过比较之后高亮最快抢答的队伍。

这里的T12标红色说明第12队最快抢到。右上角显示的是队伍名字。左下方显示各队分数。右下方显示题目进度




在github上的开源地址为:https://github.com/LiWeiJie/itAgent 


经过了上周日11月18日的实战测试,才发现自己犯了一个很大的错误。把用户层跟数据层直接连接了起来,用户的每一次请求都是直接向数据库查询,导致了过多用户连接时数据库返回延迟。

解决这个问题的方法其实很简单,只需要加多一个缓冲层用于应对用户查询就可以了。服务器定时维护缓冲层或者采用淘汰策略维护缓冲层,用户的任何请求都经过缓冲层,不能直接访问数据层,这样子就可以大大缓解数据库的压力了


  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
设计一个八路抢答系统需要考虑以下几个方面: 1. 硬件设计:需要选择合适的STM32芯片,按照要求设计电路板,包括按键输入、显示屏输出、通信接口等。 2. 软件设计:需要编写STM32的固件程序,实现按键扫描、LCD屏幕显示、串口通信等功能。 3. 抢答器逻辑:需要设计抢答器的逻辑,包括按键的扫描、抢答器的控制、得分的计算等。 下面是一个基本的STM32八路抢答系统的设计流程: 1. 硬件设计 选择合适的STM32芯片,并按照要求设计电路板。为了实现八路抢答器,需要选择至少有8个IO口的芯片,同时需要连接LCD显示屏和串口通信接口。 2. 软件设计 编写STM32的固件程序,实现按键扫描、LCD屏幕显示、串口通信等功能。按键扫描需要使用定时器中断,通过扫描每个按键的状态,确定哪个按键被按下,然后发送对应的抢答器信息到主控台。LCD屏幕显示需要使用SPI接口,通过发送特定的命令和数据,将需要显示的信息显示在屏幕上。串口通信需要使用USART模块,通过串口将抢答器信息发送给主控台。 3. 抢答器逻辑 抢答器的逻辑需要分为两部分:按键扫描和抢答器控制。按键扫描通过定时器中断,扫描每个按键的状态,确定哪个按键被按下,然后发送对应的抢答器信息到主控台。抢答器控制通过比较抢答器信息的时间戳,确定哪个抢答器先抢答,然后将得分计入该抢答器的得分中。 以上是基本的STM32八路抢答系统的设计流程,具体实现还需要根据具体要求进行调整。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值