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