摘要:在Web應(yīng)用開發(fā)中,倒計時功能在考試系統(tǒng)、網(wǎng)頁游戲等Web應(yīng)用程序中使用相當(dāng)廣泛,本文通過倒計時方式實(shí)現(xiàn)考試時間用完強(qiáng)制交卷的功能,介紹Web應(yīng)用開發(fā)中倒計時的實(shí)現(xiàn)原理。
關(guān)鍵詞:Web應(yīng)用開發(fā);倒計時;考試系統(tǒng)隨著互聯(lián)網(wǎng)的迅猛發(fā)展,Web應(yīng)用領(lǐng)域逐漸滲透到人們生活的方方面面,在Web應(yīng)用程序中關(guān)于時間的應(yīng)用相當(dāng)廣泛,下面介紹其中的倒計時功能的應(yīng)用及設(shè)計原理。
筆者曾編寫過單機(jī)版的倒計時程序用于自己的說課比賽及領(lǐng)導(dǎo)的匯報工作發(fā)言等限時性要求的活動中,效果良好。當(dāng)我在設(shè)計大型系統(tǒng)“Web版客觀題考試系統(tǒng)”時,遇到要求限時一個小時之內(nèi)交卷的功能設(shè)計。這個倒計時功能必須在客戶端實(shí)現(xiàn),用VBScript腳本語言或JavaScript腳本語言。由于不同的語言語法特性,Web版的倒計時和單機(jī)版的倒計時原理相同,但是實(shí)現(xiàn)起來差異很大。
Web版的倒計時功能在“Web版客觀題考試系統(tǒng)”應(yīng)用是這樣實(shí)現(xiàn)的,首先,通過JavaScript腳本來倒計時一個小時,時間到了就自動單擊“交卷”按鈕來完成服務(wù)端的“交卷”按鈕代碼。
在考試界面的“交卷”按鈕頁面設(shè)計的倒計時代碼如下所示,倒計時原理通過對代碼的詳細(xì)注釋來說明:
var secs = 3600;
//定義倒計時總秒數(shù)3600秒即為一小時
var wait = secs * 1000;
//定義總倒計時的總毫秒數(shù)
var finishpaper=\"交卷\";
//存儲“交卷”按鈕的界面文字
var h,m,s;
//定義時,分,秒變量
h=(secs-secs%3600)/3600;
//將總秒數(shù)分解為對應(yīng)的時
s=secs % 60;
//將總秒數(shù)分解為對應(yīng)的秒
m=(secs-h*3600-s)/60;
//將總秒數(shù)分解為對應(yīng)的分
document.form1.btnOK.value = finishpaper+\"(\" + h +\":\"+m+\":\"+s+ \") \";
//在“交卷”按鈕上顯示“交卷”及時:分:秒
for(i = 1; i <= secs; i++) {
window.setTimeout(\"update(\" + i + \")\", i * 1000);
//通過setTimeout網(wǎng)頁定時函數(shù)每隔一秒更新一下“交卷”按鈕的界面剩余時間顯示
}
window.setTimeout(\"timer()\", wait);
//倒計時結(jié)束執(zhí)行倒計時的最終任務(wù),任務(wù)在timer()函數(shù)中
function update(num, value) {
if(num == (wait/1000)) {
document.form1.btnOK.value = finishpaper;
} else {
remains = (wait / 1000)-num;
//剩余的總秒數(shù)
h=(remains-remains%3600)/3600;
//剩余總秒數(shù)對應(yīng)的時
s=remains % 60;
//剩余總秒數(shù)對應(yīng)的秒
m=(remains-h*3600-s)/60;
//剩余總秒數(shù)對應(yīng)的分
document.form1.btnOK.value = finishpaper+\"(\" + h +\":\"+m+\":\"+s + \") \";
//在“交卷”按鈕上顯示“交卷”及剩余時、分、秒
}
}
function timer() {
document.getElementById(\"btnOK\").click();
//單擊“交卷”按鈕來執(zhí)行服務(wù)器端的交卷功能
document.form1.btnOK.value = finishpaper+\"(\" + h +\":\"+m+\":\"+s+ \") \";
//在“交卷”按鈕上顯示“交卷”及最終的剩余時、分、秒
}
倒計時功能在我的“Web版客觀題考試系統(tǒng)”的“交卷”按鈕界面如下圖所示。當(dāng)一小時倒計時結(jié)束時,系統(tǒng)強(qiáng)制“交卷”,當(dāng)然,考生也可以單擊“交卷”按鈕來提前交卷。(作者單位:湖北黃岡職業(yè)技術(shù)學(xué)院)
參考文獻(xiàn):
[1]張耀輝.高職計算機(jī)網(wǎng)絡(luò)技術(shù)課程的教學(xué)研究[J].長沙通信職業(yè)技術(shù)學(xué)院學(xué)報,2008(09).
[2]葉莖.高職機(jī)電一體化專業(yè)課程建設(shè)與改革——精品課程建設(shè)的研究[J].湖北廣播電視大學(xué)學(xué)報,2009(02).
[3]蔣潔.模塊化課程體系探索[J].湖南科技學(xué)院學(xué)報,2008(04).