射击项目网上报名报项系统的设计与实现

2013-12-27 01:11:55陈军霞
湖北体育科技 2013年3期
关键词:控件射击页面

周 彤,陈军霞

1 研究目的

射击项目是我国竞技体育优势项目,全国每年都会举行各级别的分项或综合比赛,竞赛组织工作之初的报名报项是关系到比赛能否顺利进行的关键。在以往的比赛组织工作中,赛事承办单位先将统一格式的Excel电子文件分发到各地,在搜集并整理各地报名数据表之后将数据导入已有的竞赛管理软件中进行后续的工作。但在实际操作过程中由于操作要求不明确、Excel电子表格制定不严谨等问题导致在数据导入过程中频繁出错,使最终数据不一致。国家射击射箭项目管理中心组织开发了射击项目网上报名报项系统,利用现有竞赛管理软件的数据库,采用网上报名报项的形式,将数据直接写入数据库中,降低了运动员数据的出错机率,减少了中间的周转环节。

2 系统分析与设计

2.1 系统开发环境部署

系统采用基于ASP.NET的三层结构的浏览器/服务器(B/S)模式,运动员的数据通过网上报名报项系统直接提交到国家射击射箭管理中心数据库中集中管理。后台数据库采用已有射击项目竞赛管理软件的Access数据库,以便和现有管理系统进行兼容。开发的工具使用viusal Studio 2008与Dreamweaver。

2.2 报名报项流程分析

整个报名报项过程分为网上注册和网上报名报项两个阶段:1)各参赛单位上网进行参赛单位注册工作,创建各地报名报项管理人员的帐号;2)按照竞赛规程进行网上报名报项。

2.3 功能模块设计

如图1所示,网上报名报项系统分为参赛单位注册、报名报项、系统管理等3个功能模块,每个功能模块又分别包含多个子模块。

图1 功能模块

3 系统关键技术的设计与实现

3.1 Ajax技术

3.1.1 为何使用Ajax

在传统的B/S交互模式中(如用户提交表单),是由用户触发一个HTTP请求到服务器,服务器对其进行接受并进行处理后再返回一个新的HTHL页面到客户端。每当服务器处理客户端提交的请求时,用户需要等待服务器的响应,在等待期间,用户不能做其它操作,这样做存在两个问题:第一是用户需要等待,这就导致了用户界面的响应比本地应用慢得多,产生了一定程度的滞后效应;第二个是,浏览器需要将整个页面中的表单数据都提交给服务器,服务器也要生成一个全新的页面再返回给浏览器,浏览器与服务器之间通讯的数据量将非常大。

与此不同的是,Ajax应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的Web service接口,并在客户端采用JavaScript处理来自服务器的响应。这样,在服务器和浏览器之间交换的数据就会大量减少,用户就能看到响应更快的应用,用户可以感觉到几乎所有的操作都会很快响应没有页面重载(白屏) 的等待。同时,很多的处理工作可以在发出请求的客户端机器上完成,大大减轻Web服务器的负担和处理时间。

3.1.2 系统实现

我们以系统中射击大项与小项名称联动为例:

首先,在需要局部刷新的页面内创建ScriptManager控件和UpdatePanel控件ScriptManager是ASP.NET Ajax中一个重要的控件,它用来处理页面上的所有ASP.NET Ajax组件以及局部页面的更新,生成相关的客户端脚本,所有需要支持ASP.NET Ajax的ASP.NET页面上有且只能有一个ScriptManager控件。在ScriptManager控件中我们可以指定需要的脚本库,或者指定通过JS来调用的Web Service,还可以指定页面错误处理。UpdatePanel控件就是设置页面中异步局部更新区域,它必须依赖于ScriptManager存在。

下一步,在UpdatePanel控件区域内创建需局部更新数据的控件,这里我们添加两个DropDownList控件,并设置大项DropDownList1控件的ListItems值。之后,编写大项DropDownList1控件的SelectedIndexChanged事件代码,代码如下:

protected void DropDownList1_SelectedIndexChanged (object sender, EventArgs e)

{

DropDownList2.Items.Clear();

if (DropDownList1.SelectedValue == “步枪”)

{

DropDownList2.Items.Add (“10 m气步枪”);

DropDownList2.Items.Add (“50 m步枪卧射”);

DropDownList2.Items.Add (“50 m步枪3种姿势”);

}

else

{

DropDownList2.Items.Add (“10 m气手枪”);

DropDownList2.Items.Add (“25 m手枪速射”);

DropDownList2.Items.Add (“25 m手枪慢加速”);

DropDownList2.Items.Add (“50 m手枪慢射”);

}

}

一旦DropDownList1控件选项值发生改变,则在页面不用刷新的情况下DropDownList2控件的选项值会发生相应变化。

3.2 Web缓存技术

3.2.1 为何使用Web缓存

评价网上应用系统主要包括:系统的响应时间、平均事务处理时间、数据库服务器的负载、最大承载的并发用户数等多个指标。由于网上射击项目报名报项系统开放主要集中在一段时间,在这段时间里在线人数众多,需要考虑减轻服务器的负担。Web缓存是缓解网络拥塞,减少访问延迟的有效方法,也是一种无需大量时间和分析就可以获得“足够良好的”性能的方法。把用户重复访问的数据放入缓存,可以减少用户对数据库的访问次数,从而减轻数据库服务器的负载,提高系统的响应效率。

3.2.2 Web缓存原理及实现

ASP.NET提供了多种形式的缓存,本系统中使用了页面级输出缓存和编程缓存。输出缓存的优点是非常易于实现,在大多数情况下都使用这种缓存技术。而编程缓存则提供了很大的灵活性,可用于在应用程序的每一层利用缓存。

页面级输出缓存是在内存中保留为响应请求而发送的HTML的副本,其后再有请求时将提供缓存的输出,直到缓存到期,这样,性能有可能得到很大的提高。并允许以绝对时间(如12:00P.M.)或相对时间(如页面最后一次被请求后的10分钟)的方式指定页面在缓存中保存的时间,这对于页面中的数据在特定的时间内变化不太频繁的情况非常有用。ASP.NET在使用缓存中的输出之前,会检测一个页面的输入,如果输入不同,那么就会产生一个新的输出,而不会使用前一个输出,保持输出结果的准确性。

要实现页面输出缓存,只要将一条OutputCache指令添加到ASPX页面的顶部,即在任何输出之前。例如,本系统中根据调研和实践测试,系统整个操作流程估计完成时间在为30分钟,因此设置页面级输出缓存代码为:

<%@OutputCache Duration=“1800” VaryByParam=“none”%>

在以往,编程人员常用Session对象和Application对象提供键值对来缓存数据,Session对象保存与单个用户有关的数据,Application对象可保留与应用程序有关的数据,每个用户都可以访问。

在ASP.NET中,提供了专门用于缓存数据的Cache对象,它的应用范围是应用程序域。生存期是和应用程序紧密相关的,每当应用程序启动的时候就重新创建Cache对象,并且,Cache对象还提供了专门用于缓存管理的特性,比如依赖和过期策略。

在Cache中存储数据的语法如下:

Cache[“key”] =“value”;

系统中在许多地方需调用数据库连接字符串来连接数据库,因此,可以将数据库连接字符串存入Cache对象中,就无需在以后请求时从系统中读取。代码如下:

Cache (“ConnectionString”)=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SJJSRJ.mdb”;

4 小结

射击项目网上报名报项系统已开发完成,并进行了测试和完善,通过竞赛报名报项情况看,达到了预期目标,提高了报名报项的效率和准确度。该系统后期将在此基础上与国家体育总局运动员数据库进行对接,将已有运动员信息进行直接获取,保证信息的准确性。

[1] 李振坤,张朝晖,李小强.港澳台侨联招报名系统的设计与实现[J] .计算机工程,2007,33(15):252-254.

[2] 韩双旺,王心源,李德录.利用缓存优化基于ASP.NET 的Web GIS 性能[J].微计算机信息,2006,22(8):152-155.

[3] 王 星,潘 郁.基于AJAX技术的Web模型在网站开发中的应用研究[J] .微计算机信息,2006,22(9):206-207.

[4] 贺 琛,陈肇雄,黄河燕.Web 缓存技术综述[J].小型微型计算机系统,2004,25(5):836-842.

[5] 邵丽萍,肖世德.新一代Web开发技术ASP.NET的发展与探析[J].微计算机信息,2005(1):190-192.

猜你喜欢
控件射击页面
刷新生活的页面
保健医苑(2022年1期)2022-08-30 08:39:14
画与理
为什么射击最高的成绩是10.9环,而不是11环
机枪射击十八式
关于.net控件数组的探讨
软件(2018年7期)2018-08-13 09:44:42
实战化近距离快速射击方法初探
就这样玩会VBA中常见的自定义控件
电脑迷(2012年24期)2012-04-29 00:44:03
同一Word文档 纵横页面并存
浅析ASP.NET页面导航技术
其实IE也懂Chrome的心