在線考試數據的提交方法及裝置與流程
2023-05-16 09:22:46
本發明涉及在線考試領域,特別涉及一種在線考試數據的提交方法及裝置。
背景技術:
在線考試是指通過計算機在網絡媒體上進行考試過程的一種考試形式,因為計算機故障或網絡異常會導致用戶在考試過程中出現異常中斷情況,所以需要實時的記錄用戶的考試過程,以便在考試中斷的情況發生時能夠快速的恢復用戶的答題記錄,確保用戶在線考試成績的準確性。
傳統的在線考試在實時記錄用戶答題數據的時候,通常會採用在用戶修改答案的時候實時記錄答題數據信息,但是這樣會導致對伺服器的http請求急劇上升,而且可能會存在用戶快速隨意切換答案選項,導致對伺服器的惡意攻擊,當請求連續超出一定數量的時候,很容易導致系統崩潰。另一種實時記錄的思路是採用定時器定時提交答題數據信息的方法,通過設置間隔閾值,如10~30秒,當間隔時間到達設定閾值的時候,統一提交考試表單,並更新考試記錄。該方法雖然可以防止因快速切換答案選項而導致對服務的惡意攻擊,但同樣只是治標不治本,首先如果閾值設置太短,則請求並沒有減少,因為每次更新答題記錄都需要提交所有試題的答案數據,如果題目數據過多,這時請求並沒有減少,而且會增加大並發的風險,其次如果閾值設置過大,則會導致記錄的答題數據不準確。
技術實現要素:
本發明要解決的技術問題在於,針對現有技術的上述缺陷,提供一種能有效防止用戶頻繁的修改答題結果或惡意的提交操作、最大限度減少對伺服器端的請求數量、降低伺服器端的並發壓力、能有效保證用戶在線考試成績的準確性的在線考試數據的提交方法及裝置。
本發明解決其技術問題所採用的技術方案是:構造一種在線考試數據的提交方法,包括如下步驟:
a)用戶進入在線考試系統;
b)初始化堆棧管理器;所述堆棧管理器用於負責堆棧和定時任務的管理;
c)所述用戶對試卷中的試題進行作答;
d)判斷當前試題是否為第一次作答,如是,執行步驟e);否則,執行步驟f);
e)所述堆棧管理器為所述試題創建一個獨立的堆棧和定時器,並使用所述堆棧存儲所述當前試題的答題記錄,執行步驟h);
f)更新堆棧數據,執行步驟g);
g)當所述定時器達到設定的時間間隔閾值,且所述堆棧中存在所述試題的答題記錄時,則執行步驟h);
h)將所述堆棧中當前試題的答題記錄提交至伺服器端進行保存,執行步驟i);
i)所述用戶答完試卷中的所有試題,點擊提交試卷;
j)遍歷所述堆棧管理器中的堆棧列表,找到還未提交的答題記錄,並將其提交至所述伺服器端進行保存,並完成所有試題的答題記錄的更新;
k)關閉定時任務,並銷毀所述堆棧管理器;
l)完成交卷。
在本發明所述的在線考試數據的提交方法中,所述步驟f)進一步包括:
f1)將當前試題的第二次及後續的答題記錄插入到所述堆棧中;
f2)當所述堆棧中存在所述當前試題的答題記錄時,則修改所述堆棧中的答題記錄。
在本發明所述的在線考試數據的提交方法中,所述設定的時間間隔閾值為10~15秒。
本發明還涉及一種實現上述在線考試數據的提交方法的裝置,包括:
考試系統進入單元:用於使用戶進入在線考試系統;
初始化單元:用於初始化堆棧管理器;所述堆棧管理器用於負責堆棧和定時任務的管理;
試題作答單元:用於使所述用戶對試卷中的試題進行作答;
作答判斷單元:用於判斷當前試題是否為第一次作答;
堆棧定時器創建單元:用於使所述堆棧管理器為所述試題創建一個獨立的堆棧和定時器,並使用所述堆棧存儲所述當前試題的答題記錄;
堆棧數據更新單元:用於更新堆棧數據;
條件判斷單元:用於當所述定時器達到設定的時間間隔閾值,且所述堆棧中存在所述試題的答題記錄時,則轉到答題記錄定時提交單元;
答題記錄定時提交單元:用於將所述堆棧中當前試題的答題記錄提交至伺服器端進行保存;
試卷提交單元:用於使所述用戶答完試卷中的所有試題,點擊提交試卷;
遍歷更新單元:用於遍歷所述堆棧管理器中的堆棧列表,找到還未提交的答題記錄,並將其提交至所述伺服器端進行保存,並完成所有試題的答題記錄的更新;
堆棧定時關閉單元:用於關閉定時任務,並銷毀所述堆棧管理器;
交卷完成單元:用於完成交卷。
在本發明所述的裝置中,所述堆棧數據更新單元進一步包括:
答題記錄插入模塊:用於將當前試題的第二次及後續的答題記錄插入到所述堆棧中;
答題記錄修改模塊:用於當所述堆棧中存在所述當前試題的答題記錄時,則修改所述堆棧中的答題記錄。
在本發明所述的裝置中,所述設定的時間間隔閾值為10~15秒。
實施本發明的在線考試數據的提交方法及裝置,具有以下有益效果:由於在用戶進入在線考試系統時,會初始化堆棧管理器,當用戶對某道試題第一次作答時,堆棧管理器會為該試題創建一個堆棧,同時立即將試題的答題記錄提交至伺服器端保存。用戶在第二次進行作答時不會立即將試題的答題記錄提交至伺服器端保存,而是通過將試題的答題記錄保存至該堆棧中,同時啟動一個定時任務,設置時間間隔閾值,在時間間隔閾值內,用戶再次作答,試題的答題記錄只會更新至該試題的堆棧中,當定時任務達到間隔閥值,再取出堆棧中的試題的答題記錄提交至伺服器端進行保存;當用戶完成所有試題的作答,點擊提交試卷時,堆棧管理器會遍歷堆棧列表,將未保存的試題答題記錄提交至伺服器端進行保存,同時關閉定時任務,銷毀堆棧管理器,完成交卷;通過堆棧管理器實現對用戶答題數據的管理,能有效防止用戶頻繁的修改答題結果或惡意的提交操作、最大限度減少對伺服器端的請求數量、降低伺服器端的並發壓力、能有效保證用戶在線考試成績的準確性。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明在線考試數據的提交方法及裝置一個實施例中方法的流程圖;
圖2為所述實施例中更新堆棧數據的具體流程圖;
圖3為所述實施例中裝置的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
在本發明在線考試數據的提交方法及裝置實施例中,其在線考試數據的提交方法的流程圖如圖1所示。圖1中,該在線考試數據的提交方法包括如下步驟:
步驟s01用戶進入在線考試系統:本步驟中,用戶點擊開始考試,打開考試頁面,也就是進入在線考試系統。
步驟s02初始化堆棧管理器:本步驟中,初始化堆棧管理器,堆棧管理器用於負責堆棧和定時任務的管理。
步驟s03用戶對試卷中的試題進行作答:本步驟中,用戶對試卷中的試題進行作答。
步驟s04判斷當前試題是否為第一次作答:本步驟中,判斷當前試題是否為第一次作答,如果判斷的結果為是,則執行步驟s05;否則,執行步驟s06。
步驟s05堆棧管理器為試題創建一個獨立的堆棧和定時器,並使用堆棧存儲當前試題的答題記錄:如果上述步驟s04的判斷結果為是,即當前試題是第一次作答,則執行本步驟。本步驟中,堆棧管理器為試題創建一個獨立的堆棧和定時器(即定時任務),並使用堆棧存儲該當前試題的答題記錄。執行完本步驟,執行步驟s08。
步驟s06更新堆棧數據:如果上述步驟s04的判斷結果為否,即當前試題不是第一次作答,則執行本步驟。本步驟中,更新堆棧數據。執行完本步驟,執行步驟s07。
步驟s07當定時器達到設定的時間間隔閾值,且堆棧中存在試題的答題記錄時:本步驟中,當定時器達到設定的時間間隔閾值,且堆棧中存在試題的答題記錄時,則執行步驟s08。值得一提的是,本實施例中,上述設定的時間間隔閾值為10~15秒。當然,在本實施例的一些情況下,設定的時間間隔閾值也可以為其他值。
步驟s08將堆棧中當前試題的答題記錄提交至伺服器端進行保存:本步驟中,堆棧將當前試題的答題記錄提交至伺服器端進行保存,也就是更新答題記錄。執行完本步驟,執行步驟s09。
步驟s09用戶答完試卷中的所有試題,點擊提交試卷:本步驟中,用戶答完試卷中的所有試題,點擊提交試卷,這時需要更新考試結果。為了保證數據的準確性,需要再次遍歷堆棧管理器中的堆棧列表,即執行步驟s10。
步驟s10遍歷堆棧管理器中的堆棧列表,找到還未提交的答題記錄,並將其提交至伺服器端進行保存,並完成所有試題的答題記錄的更新:本步驟中,遍歷堆棧管理器中的堆棧列表,找到還未提交的答題記錄,並將其提交至伺服器端進行保存,並完成所有試題的答題記錄的更新。當所有試題的答題記錄更新完成時,則執行步驟s11。
步驟s11關閉定時任務,並銷毀堆棧管理器:本步驟中,關閉定時任務,並銷毀堆棧管理器。
步驟s12完成交卷:本步驟中,完成交卷。
在本發明的方法中,由於在用戶進入在線考試系統時,會初始化堆棧管理器,當用戶對某道試題第一次作答時,堆棧管理器會為該試題創建一個堆棧,同時立即將試題的答題記錄提交至伺服器端保存。用戶在第二次進行作答時不會立即將試題的答題記錄提交至伺服器端保存,而是通過將試題的答題記錄保存至該堆棧中,同時啟動一個定時任務,設置時間間隔閾值,在時間間隔閾值內,用戶再次作答,試題的答題記錄只會更新至該試題的堆棧中,當定時任務達到間隔閥值,再取出堆棧中的試題的答題記錄提交至伺服器端進行保存;當用戶完成所有試題的作答,點擊提交試卷時,堆棧管理器會遍歷堆棧列表,將未保存的試題答題記錄提交至伺服器端進行保存,同時關閉定時任務,銷毀堆棧管理器,完成交卷;通過堆棧管理器實現對用戶答題數據的管理,能有效防止用戶頻繁的修改答題結果或惡意的提交操作、最大限度減少對伺服器端的請求數量、降低伺服器端的並發壓力、能有效保證用戶在線考試成績的準確性。
對於本實施例而言,上述步驟s06還可進一步細化,其細化後的流程圖如圖2所示。圖2中,上述步驟s06進一步包括:
步驟s61將當前試題的第二次及後續的答題記錄插入到堆棧中:本實施例中,當前試題的第二次及後續答題記錄都不會直接提交至伺服器端,而是插入到堆棧中。本實施例中,將當前試題的第二次及後續的答題記錄插入到堆棧中。
步驟s62當堆棧中存在當前試題的答題記錄時,則修改堆棧中的答題記錄:本步驟中,當堆棧中存在當前試題的答題記錄時,則修改堆棧中的答題記錄,因為只需要提交最後一次的答題記錄即可。
本實施例還涉及一種實現上述在線考試數據的提交方法的裝置,該裝置的結構示意圖如圖3所示。圖3中,該裝置包括考試系統進入單元1、初始化單元2、試題作答單元3、作答判斷單元4、堆棧定時器創建單元5、堆棧數據更新單元6、條件判斷單元7、答題記錄定時提交單元8、試卷提交單元9、遍歷更新單元10、堆棧定時關閉單元11和交卷完成單元12;其中,考試系統進入單元1用於使用戶進入在線考試系統;初始化單元2用於初始化堆棧管理器;該堆棧管理器用於負責堆棧和定時任務的管理;試題作答單元3用於使用戶對試卷中的試題進行作答;作答判斷單元4用於判斷當前試題是否為第一次作答;堆棧定時器創建單元5用於使堆棧管理器為試題創建一個獨立的堆棧和定時器,並使用堆棧存儲當前試題的答題記錄。
堆棧數據更新單元6用於更新堆棧數據;條件判斷單元7用於當定時器達到設定的時間間隔閾值,且堆棧中存在試題的答題記錄時,則轉到答題記錄定時提交單元;值得一提的是,本實施例中,上述設定的時間間隔閾值為10~15秒。當然,在本實施例的一些情況下,設定的時間間隔閾值也可以為其他值。
答題記錄定時提交單元8用於將堆棧中當前試題的答題記錄提交至伺服器端進行保存;試卷提交單元9用於使用戶答完試卷中的所有試題,點擊提交試卷;遍歷更新單元10用於遍歷堆棧管理器中的堆棧列表,找到還未提交的答題記錄,並將其提交至伺服器端進行保存,並完成所有試題的答題記錄的更新;堆棧定時關閉單元11用於關閉定時任務,並銷毀堆棧管理器;交卷完成單元12用於完成交卷。
在本發明的裝置中,由於在用戶進入在線考試系統時,會初始化堆棧管理器,當用戶對某道試題第一次作答時,堆棧管理器會為該試題創建一個堆棧,同時立即將試題的答題記錄提交至伺服器端保存。用戶在第二次進行作答時不會立即將試題的答題記錄提交至伺服器端保存,而是通過將試題的答題記錄保存至該堆棧中,同時啟動一個定時任務,設置時間間隔閾值,在時間間隔閾值內,用戶再次作答,試題的答題記錄只會更新至該試題的堆棧中,當定時任務達到間隔閥值,再取出堆棧中的試題的答題記錄提交至伺服器端進行保存;當用戶完成所有試題的作答,點擊提交試卷時,堆棧管理器會遍歷堆棧列表,將未保存的試題答題記錄提交至伺服器端進行保存,同時關閉定時任務,銷毀堆棧管理器,完成交卷;通過堆棧管理器實現對用戶答題數據的管理,能有效防止用戶頻繁的修改答題結果或惡意的提交操作、最大限度減少對伺服器端的請求數量、降低伺服器端的並發壓力、能有效保證用戶在線考試成績的準確性。
本實施例中,堆棧數據更新單元6進一步包括答題記錄插入模塊61和答題記錄修改模塊62;其中,答題記錄插入模塊61用於將當前試題的第二次及後續的答題記錄插入到堆棧中;答題記錄修改模塊62用於當堆棧中存在當前試題的答題記錄時,則修改堆棧中的答題記錄。
總之,本發明從數據並發請求和效率方面做了改進,用堆棧管理器對用戶的答題結果進行管理,可以有效防止用戶頻繁的修改答題結果或者惡意的提交操作,最大限度減少對伺服器的請求數量,降低伺服器端的並發壓力,同時能有效保證用戶在線考試成績的準確性。
以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。