ASP.NET网页在教学中的实时应用

2017-06-28 12:59黄正亮卓明敏廖小于
温州职业技术学院学报 2017年1期
关键词:客户机计时器计时

黄正亮,卓明敏,廖小于

(赣州师范高等专科学校 计算机系,江西 赣州 341000)

ASP.NET网页在教学中的实时应用

黄正亮,卓明敏,廖小于

(赣州师范高等专科学校 计算机系,江西 赣州 341000)

为解决ASP.NET页面状态保持时间出现的超时问题,提出通过服务器代码C#中的数据(CS)与客户端脚本中的数据(JS)进行对接的解决方案。该方案依赖于客户机时钟的准确性,又提出改进计时器的优化方案。两种方案均实现了ASP.NET页面状态超长时间保持,已成功应用于高校教学在线考试考核中,在电子商务、网络办公等方面均有较好的应用前景。

ASP.NET;状态保持;Web;CS;JS

0 引 言

在ASP.NET在线测试类网页,当测试者登录测试页面后,如果做题时间超过20分钟后,“提交”则不一定成功,经检查,是页面状态保持时间出现问题。在将Session有效值设置为足够大后,虽然可提高“提交”成功率,仍不能做到100%成功提交;更改网站应用程序池的超时设置,又会影响其他页面的默认设置。针对测试页面状态保持时间出现的问题,设想在测试页面中每隔一定时间自动产生一个“回发”(Postback)操作,利用“回发”操作延长页面状态保持时间,问题便能迎刃而解。对习惯于桌面程序设计的程序员而言,自然就会想到使用定时器,但ASP.NET网页有其独特的生命周期,如果借助服务器的事件产生实时计时,服务器将不堪重负;如果仅使用客户端脚本[1],操作中如出现页面“回发”,会导致定时器重新从0开始计时,从而不能连续计时,无法实现定时“回发”和限时“提交”。为此,本文提出一种将以上二者结合起来的方法,用以延长ASP. NET页面状态保持时间。

1 延长ASP.NET页面状态保持时间的基本方案

1.1 基本方案策略及关键代码

在Web应用实验中发现,将服务器代码C#中的数据(CS)与客户端脚本中的数据(JS)进行对接,就可能延长ASP.NET页面状态保持时间,按照“客户机实时时间-(服务器)页面开始时间=计时时长”的思路得以实现。

通过在(标记代码)页面上增加一个服务器标签控件Label1,当测试者登录该页面时,由CS使用Label1控件记录开始测试的服务器时间DT0[2],再由客户端脚本读取Label1控件的值DT0,并计算出该起始时间DT0与客户端的实时时间DT的差(DT-DT0)得到TL,即测试页实际实时计时时长。由于Label1是Web服务器对象,其值DT0在页面“回发”时可一直保持下来,因为计时器函数每次(包括页面“回发”后)都是由实时时间值DT减去开始时间值DT0得到时长TL,从而实现连续自动计时。利用连续计时的实用“计时器”,再通过该计时器定时调用服务器事件代码[3],即可实现定时“回发”和限时“提交”。延长ASP.NET页面状态保持时间的基本方案流程如图1所示。

图1 延长ASP.NET页面状态保持时间的基本方案流程

实现该基本方案的相关参考代码中,其中标记代码页(timejs.aspx)中的关键代码如下:

后台代码页(timejs.aspx.cs)有关代码如下:

1.2 基本方案运行效果

该基本方案实际运行效果如图2所示。

图2 延长ASP.NET页面状态保持时间的基本方案实际运行效果

该基本方案在实际测试中效果较为理想,几乎与桌面版普通计时器一样,而且对服务器资源依赖较少,已经过多次大规模的实际测试,只要客户机的时钟设置基本正常,即可100%实现连续计时,从而一直保持与服务器的“握手”状态,最终使测试结果得以成功提交。但如果客户机时钟与服务器时钟有较大差距,则仍会出现计时不正常,甚至出现“倒计时”现象,因而该基本方案仍有待优化改进。

图3 改进计时器的优化方案流程

2 改进计时器的优化方案

2.1 优化方案策略及客户端脚本代码

为避免对客户机时钟准确性的依赖,在ASP. NET网页的教学状态管理时,如能利用ASP.NET的视图状态(ViewState)变量结合客户机的脚本累加器,就有可能摆脱对客户机时钟准确性的依赖,达到连续计时又不依赖于客户机时钟的准确性。经过多次实验后,终于将页面连续计时部分的隐患彻底排除,按照“(服务器)阶段计时值+客户端连续计时值=计时时长”的思路得以实现。

用户在登录时由CS记录开始时间到视图状态变量ViewState[“st0”][4],同时客户端脚本中的累加器从0开始计时,当计时到约定的时刻调用“暂存答卷”钮的单击事件代码,由CS在服务器端通过服务器当前时间-ViewState [“st0”]中的开始时间计算出已用去的时间(秒数),并将该时间(秒数)传回到客户端的一标签控件或隐藏域控件中,同时将客户端脚本中的累加器重置,重新以标签控件中值(秒数)作为计数的初值而继续计时,从而实现连续精确计时。这样,不管客户端时钟是否准确,都对测试网页的精确计时影响不大。改进计时器的优化方案流程如图3所示。

优化方案客户端脚本代码如下:

后台开始登录计时的C#代码如下:

2.2 优化方案运行效果

改进计时器的优化方案实际运行效果如图4所示。

优化方案实际运行的计时效果较为理想,完全不依赖客户机实际时钟值,只是借助客户端脚本(JS)的计秒累加操作,且并没有明显增加对服务器的依赖。在成规模性的实际测试中,基本实现了全部自动提交的预定要求,使考试换场变得更为简单方便。如果客户机时钟计秒值出现问题,就会出现客户端计时与服务器计时有误差的现象,但在“回发”时仍可通过服务器控件事件代码给予校正。

图4 改进计时器的优化方案实际运行效果

3 结束语

对比基本方案和优化方案,在网络顺畅的情况下通过定时回访服务器均可延长ASP.NET页面状态保持时间,理论上延长的时间不受限制,使用起来都很方便。前者对服务器依赖较低,但对客户端时钟有较统一的要求;后者计时更准确,但对服务器的依赖较前者稍高,对客户机则几乎没有要求,且未见例外情况出现。基于上述方案开发的ASP.NET网页在教学中的实时应用,已经赣州师范高等专科学校运行多年,未出现任何原则性问题。根据网络应用的市场预测,二者进一步改进和完善后,在电子商务[5]、网络办公、在线考试程序等方面均有较好的应用前景。

[1] 李正吉.ASP.NET网站开发技术(项目式)[M].北京:人民邮电出版社,2011:64-70.

[2] 许锁坤.ASP.NET技术基础[M].北京:高等教育出版社,2007:59-60.

[3] Js调用后台点击事件[EB/OL].(2012-06-28)[2016-08-20].https://zhidao.baidu.com/question/444257668.html.

[4] 徐谡.ASP.NET应用与开发案例教程[M].北京:清华大学出版社,2005:224-226.

[5] 孟昊雨,田启明.CMS营销型网站的建设[J].温州职业技术学院学报,2015(4):43-45.

[责任编辑:田启明]

Real-time Application of ASP.NET Website in Teaching

HUANG Zhengliang, ZHUO Mingmin, LIAO Xiaoyu
(Computer Department, Ganzhou Teachers College, Ganzhou, 341000, China)

To solve the timeout problem of ASP.NET website maintenance, the paper proposes to combine the data of server code C# (CS) with the data of client script (JS). Since the solution depends on the accuracy of clients’clock, the paper also puts forward an optimization method of improving timer. By adopting the two methods, long-time maintenance of ASP.NET website can be achieved. It has been successfully applied to online examinations in university education. And it also has a bright prospect in f elds like E-commerce and online off ce.

ASP.NET; State maintenance; Web; CS; JS

TP393.092

A

1671-4326 (2017) 01-0053-04

10.13669/j.cnki.33-1276/z.2017.012

2016-09-14

江西省教育厅科学技术研究项目(GJJ151364)

黄正亮(1963—),男,江西南康人,赣州师范高等专科学校计算机系副教授;

卓明敏(1963—),男,江西南康人,赣州师范高等专科学校计算机系教授;

廖小于(1969—),女,江西于都人,赣州师范高等专科学校计算机系副教授.

猜你喜欢
客户机计时器计时
畅游计时天地
松鼠的计时器
腕表计时2.0
12时计时法与24时计时法的互化
超高精度计时器——原子钟
24时计时法
抗缪勒氏管激素:卵巢功能的计时器!
竖向固定电火花打点计时器的技巧
瘦客户机:安全与便捷的选择
升腾瘦客户机借神码翱翔“云端”