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