梁寧利
九江學院電子工程學院,江西九江 332005
隨著計算機網絡的日益普及和Internet的迅猛發展,大部分院校已開始實施基于本地網絡資源的不受空間和時間限制的立體的教學環境和教育教學平臺。利用現代網絡技術和平臺解決傳統考試的弊端已成為各院校解決問題的首選手段。網上考試系統利用先進的現代網絡平臺來代替人工活動,解決了在傳統的考試環境下需要大量組織和監考、閱卷人員等問題,提高了考試工作的效率和公正性。
網上考試系統的開發和完善正是我們研究的重點,該系統一般包含抽題組卷算法、智能分析卷面和在線答題3個關鍵技術環節,其中在線答題是指考生通過身份認證進行考試系統,在規定的時間內進行在線答題。在線答題模塊直接呈現給考生使用,是整個系統中使用度最高的模塊,所以也是系統設計的重點。界面和功能應充分方便考生使用,其中考試時間倒計時顯示、提醒信息、防刷屏、屏蔽快捷鍵等功能設計尤為重要。隨著近幾年來AJAX(Asynchronous JavaScript and XML)技術的日趨成熟和廣泛運用,給傳統的Web應用程序開發拓寬了外延、豐富了手段。將AJAX技術應用于網上考試系統,不僅可以讓操作界面更加友好,傳輸效率更高,而且使得系統設計開發起來更加快捷。
AJAX采用了異步交互的方式。它在用戶和服務器之間引入了一個中間媒介(AJAX引擎),從而改變了同步交互過程中的“處理-等待-處理-等待”的模式。在Web 2.0的時代,微軟憑借ASP.net 2.0的成功乘勢推出了ASP.NET AJAX技術,并被整合在ASP.NET 2.0之中,是ASP.NET的一種擴展技術。
下面以筆者曾經開發的網上考試系統中的在線答題模塊為例,分析如何引入AJAX技術。

圖1 在線答題模塊工作流程圖
考生在線答題模塊工作流程主要包括:考生登陸(Login.aspx)、顯示考生信息并列出可開考的課目(Online_test_info.aspx)、初始考試時間(Online_test_time.aspx)和在線答題(Online_test.aspx)等4個過程,流程如圖:
4個程序塊的功能如下:
1)Login.aspx:身份驗證;
2)Online_test_info.aspx:顯示通過驗證的考生信息,并列出該考生許可進入的開考課目,單擊試卷名以彈出新窗口的形式打開新頁;
3)Online_test_time.aspx:初始化考試結束時間。
首先從開考課目試卷參數表中得到考試時長值,再判斷并換算出該考生本場考試的結束時間,如果是第一次進入,則用Session["t_end"]記下該考生本場考試結束的時間,并存入該場考試考生的作答參數表中,以防備該考生在線答題時宕機等特殊情況下再次進入答題;如果非第一次進入,且在尚有答題時間,則從本場考試考生的作答參數中取出該考生的結束時間。
4)Online_test.aspx:在線答題。
Online_test.aspx中應屏蔽鼠標右鍵、Ctrl+N、Shift+F10、F11、退格等快捷鍵和按鍵,此外,因為采用了記下“結束時間”的策略和運用AJAX技術,徹底杜絕了在線答題時考生惡意刷屏的漏洞。
1)加入ScriptManager控件,一個頁只能有一個ScriptManager(包含了所有腳本資源),放到任何用到AJAX的控件的前面。
2)加入UpdatePanel控件,該控件內放置需要被刷新的控件,包括:兩個Label控件、1個Timer控件,并將ID為“btn_save”的button控件定義Triggers中。每隔1秒,Label_time控件倒計時顯示離考試結束時間,而試卷題目不隨時間刷新。


該系統是在Microsoft Visual Studio 2008 .net平臺下開發的,采用C#語言,運行在framework 3.5架構下,數據庫采SQL Server 2005企業版,大量運用AJAX技術,比如:抽題組卷長時間運算的等待、題庫列表翻頁顯示、局塊數據刷新等。使用AJAX可以帶來的好處有以下幾方面: 1)減輕服務器的負擔;2)無需刷新整個頁面;3)帶來更好的用戶體驗;4)利用客戶端閑置的處理能力,減輕服務器的負擔;5)可以調用外部數據;6)基于標準化的并被廣泛支持的技術,不需要下載插件或小程序;7)進一步促進頁面呈現與數據的分離。
[1]王宇.高校在線考試系統的設計與實現[J].價值工程,2010(8).
[2]陶勇強.基于Asp.Net和Ajax技術的BBS系統的設計與研究[D].南昌大學,2010.
[3]唐滿英.基于ASP語言的考試系統軟件設計[J].網絡安全技術與應用,2009(4).