梁寧利
九江學(xué)院電子工程學(xué)院,江西九江 332005
隨著計(jì)算機(jī)網(wǎng)絡(luò)的日益普及和Internet的迅猛發(fā)展,大部分院校已開始實(shí)施基于本地網(wǎng)絡(luò)資源的不受空間和時(shí)間限制的立體的教學(xué)環(huán)境和教育教學(xué)平臺(tái)。利用現(xiàn)代網(wǎng)絡(luò)技術(shù)和平臺(tái)解決傳統(tǒng)考試的弊端已成為各院校解決問(wèn)題的首選手段。網(wǎng)上考試系統(tǒng)利用先進(jìn)的現(xiàn)代網(wǎng)絡(luò)平臺(tái)來(lái)代替人工活動(dòng),解決了在傳統(tǒng)的考試環(huán)境下需要大量組織和監(jiān)考、閱卷人員等問(wèn)題,提高了考試工作的效率和公正性。
網(wǎng)上考試系統(tǒng)的開發(fā)和完善正是我們研究的重點(diǎn),該系統(tǒng)一般包含抽題組卷算法、智能分析卷面和在線答題3個(gè)關(guān)鍵技術(shù)環(huán)節(jié),其中在線答題是指考生通過(guò)身份認(rèn)證進(jìn)行考試系統(tǒng),在規(guī)定的時(shí)間內(nèi)進(jìn)行在線答題。在線答題模塊直接呈現(xiàn)給考生使用,是整個(gè)系統(tǒng)中使用度最高的模塊,所以也是系統(tǒng)設(shè)計(jì)的重點(diǎn)。界面和功能應(yīng)充分方便考生使用,其中考試時(shí)間倒計(jì)時(shí)顯示、提醒信息、防刷屏、屏蔽快捷鍵等功能設(shè)計(jì)尤為重要。隨著近幾年來(lái)AJAX(Asynchronous JavaScript and XML)技術(shù)的日趨成熟和廣泛運(yùn)用,給傳統(tǒng)的Web應(yīng)用程序開發(fā)拓寬了外延、豐富了手段。將AJAX技術(shù)應(yīng)用于網(wǎng)上考試系統(tǒng),不僅可以讓操作界面更加友好,傳輸效率更高,而且使得系統(tǒng)設(shè)計(jì)開發(fā)起來(lái)更加快捷。
AJAX采用了異步交互的方式。它在用戶和服務(wù)器之間引入了一個(gè)中間媒介(AJAX引擎),從而改變了同步交互過(guò)程中的“處理-等待-處理-等待”的模式。在Web 2.0的時(shí)代,微軟憑借ASP.net 2.0的成功乘勢(shì)推出了ASP.NET AJAX技術(shù),并被整合在ASP.NET 2.0之中,是ASP.NET的一種擴(kuò)展技術(shù)。
下面以筆者曾經(jīng)開發(fā)的網(wǎng)上考試系統(tǒng)中的在線答題模塊為例,分析如何引入AJAX技術(shù)。
圖1 在線答題模塊工作流程圖
考生在線答題模塊工作流程主要包括:考生登陸(Login.aspx)、顯示考生信息并列出可開考的課目(Online_test_info.aspx)、初始考試時(shí)間(Online_test_time.aspx)和在線答題(Online_test.aspx)等4個(gè)過(guò)程,流程如圖:
4個(gè)程序塊的功能如下:
1)Login.aspx:身份驗(yàn)證;
2)Online_test_info.aspx:顯示通過(guò)驗(yàn)證的考生信息,并列出該考生許可進(jìn)入的開考課目,單擊試卷名以彈出新窗口的形式打開新頁(yè);
3)Online_test_time.aspx:初始化考試結(jié)束時(shí)間。
首先從開考課目試卷參數(shù)表中得到考試時(shí)長(zhǎng)值,再判斷并換算出該考生本場(chǎng)考試的結(jié)束時(shí)間,如果是第一次進(jìn)入,則用Session["t_end"]記下該考生本場(chǎng)考試結(jié)束的時(shí)間,并存入該場(chǎng)考試考生的作答參數(shù)表中,以防備該考生在線答題時(shí)宕機(jī)等特殊情況下再次進(jìn)入答題;如果非第一次進(jìn)入,且在尚有答題時(shí)間,則從本場(chǎng)考試考生的作答參數(shù)中取出該考生的結(jié)束時(shí)間。
4)Online_test.aspx:在線答題。
Online_test.aspx中應(yīng)屏蔽鼠標(biāo)右鍵、Ctrl+N、Shift+F10、F11、退格等快捷鍵和按鍵,此外,因?yàn)椴捎昧擞浵隆敖Y(jié)束時(shí)間”的策略和運(yùn)用AJAX技術(shù),徹底杜絕了在線答題時(shí)考生惡意刷屏的漏洞。
1)加入ScriptManager控件,一個(gè)頁(yè)只能有一個(gè)ScriptManager(包含了所有腳本資源),放到任何用到AJAX的控件的前面。
2)加入U(xiǎn)pdatePanel控件,該控件內(nèi)放置需要被刷新的控件,包括:兩個(gè)Label控件、1個(gè)Timer控件,并將ID為“btn_save”的button控件定義Triggers中。每隔1秒,Label_time控件倒計(jì)時(shí)顯示離考試結(jié)束時(shí)間,而試卷題目不隨時(shí)間刷新。
該系統(tǒng)是在Microsoft Visual Studio 2008 .net平臺(tái)下開發(fā)的,采用C#語(yǔ)言,運(yùn)行在framework 3.5架構(gòu)下,數(shù)據(jù)庫(kù)采SQL Server 2005企業(yè)版,大量運(yùn)用AJAX技術(shù),比如:抽題組卷長(zhǎng)時(shí)間運(yùn)算的等待、題庫(kù)列表翻頁(yè)顯示、局塊數(shù)據(jù)刷新等。使用AJAX可以帶來(lái)的好處有以下幾方面: 1)減輕服務(wù)器的負(fù)擔(dān);2)無(wú)需刷新整個(gè)頁(yè)面;3)帶來(lái)更好的用戶體驗(yàn);4)利用客戶端閑置的處理能力,減輕服務(wù)器的負(fù)擔(dān);5)可以調(diào)用外部數(shù)據(jù);6)基于標(biāo)準(zhǔn)化的并被廣泛支持的技術(shù),不需要下載插件或小程序;7)進(jìn)一步促進(jìn)頁(yè)面呈現(xiàn)與數(shù)據(jù)的分離。
[1]王宇.高校在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].價(jià)值工程,2010(8).
[2]陶勇強(qiáng).基于Asp.Net和Ajax技術(shù)的BBS系統(tǒng)的設(shè)計(jì)與研究[D].南昌大學(xué),2010.
[3]唐滿英.基于ASP語(yǔ)言的考試系統(tǒng)軟件設(shè)計(jì)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2009(4).