JavaScripti taimeri rakendamine veebiviktoriinirakenduses

See veebipõhise viktoriinirakenduse JavaScripti loenduritaimeri juurutamise üksikasjalik juhend aitab teil käivitada taimer JavaScripti keel

Selles postituses laiendame oma viktoriinirakendust ja lisame sellesse JavaScripti loenduri taimeri funktsionaalsuse. Teine asi, mida siin juurutame, on koodi lisamine, et igal viktoriinil oleks erinev arv küsimusi. Kui te pole esimest osa juba lugenud, soovitan teil see läbi vaadata. Teil on lihtsam seda postitust jälgida ja sellest täielikult aru saada.



Esimest osa saate lugeda siit .Võiksite laiendada ka oma nurkade karjäärivõimalusi .



JavaScripti taimer

Iga viktoriini kestus salvestatakse viktoriini XML-faili, me leiame viktoriini kestuse ja salvestame selle atribuudina kasutaja seanssi. Kui kasutaja esitab küsimuse, edastame aja ka kontrollerile, kasutades JavaScripti kohandatud vormi esitamist. Seega, kui näitame järgmist küsimust, kuvame õige järelejäänud aja.

javascript-countdown-timer-online-quiz-application



Kui viktoriini kestus on möödas, kuvatakse kasutajale hoiatuskast, kus on kirjas “Time Up”, viktoriin hinnatakse ja kuvatakse lõpptulemus.

kuidas Java-s juhuslikku stringi luua

Vaatame, mida me selle saavutamiseks vajame.



Enne viktoriini küsimusi oleme lisanud viktoriini XML-faili kaks uut rida.

Java viktoriin (2015/01/18) 10 2 Milline on õige süntaks? avalik klass ABC laiendab QWE laiendab õpilast int i = 'A' String s = 'Tere' eraklassi ABC 2 Milline järgmistest a-st pole Java märksõna? klassi liides laiendab abstraktsiooni 3 Mis on Java puhul tõsi? Java on platvormispetsiifiline Java ei toeta mitut pärimist Java ei tööta Linuxis ja Mac ei ole Java mitmekeeleline 1 Milline järgmistest on liides? Keerme käivitatava kuupäeva kalender 1 Milline ettevõte andis välja Java versiooni 8? Millise keelekategooria alla kuulub Sun Oracle Adobe Google 1 Java? Esimese põlvkonna keeled Teise põlvkonna keeled Kolmanda põlvkonna keeled Neljanda põlvkonna keeled 2 Milline on vaikepakett, mis on teie programmile automaatselt nähtav? java.net javax.swing java.io java.lang 3 Millist WEB-INFi kirjet kasutatakse servleti kaardistamiseks? servleti kaardistamine servleti registreerimine servleti sisestamine servleti manus 0 Kui pikk on Java andmetüüp int? 32-bitine 16-bitine 64-bitine Käitusajaspetsiifiline 0 Mis on Java andmetüübi tõeväärtuse vaikeväärtus? tõene vale 1 0 1

Taimeri määramine uue eksami alustamisel

Kui kasutaja alustab uut eksamit, määrame atribuudina kasutaja sessiooni viktoriini küsimuste koguarvu ja kestuse.

request.getSession (). setAttribute ('totalNumberOfQuizQuestions', document.getElementsByTagName ('totalQuizQuestions'). element (0) .getTextContent ()) request.getSession (). setAttribute ('quizDuration', dokument.getEgetElementsBy .item (0) .getTextContent ()) request.getSession (). setAttribute ('min', document.getElementsByTagName ('quizDuration'). element (0) .getTextContent ()) request.getSession (). setAttribute ('sec ', 0)

Taimer

Me peame taimerit iga sekundi järel vähendama, selleks loome JavaScripti funktsiooni, mida kutsutakse esmalt eksamilehe laadimisel, ja seejärel kutsume seda funktsiooni iga sekundi tagant tagasi.

Javascripti funktsioon loendusaega

var tim var min = '$ {sessionScope.min}' var sec = '$ {sessionScope.sec}' var f = uus kuupäeva () funktsioon customSubmit (someValue) {document.questionForm.minute.value = min document.questionForm. second.value = sec document.questionForm.submit ()} function examTimer () {if (parseInt (sec)> 0) {document.getElementById ('showtime'). internalHTML = 'Jäänud aeg:' + min + 'Minutid' + sec + 'Sekundid' sec = parseInt (sec) - 1 tim = setTimeout ('examTimer ()', 1000)} else {if (parseInt (min) == 0 && parseInt (sec) == 0) {document.getElementById ('showtime'). internalHTML = 'Järelejäänud aeg:' + min + 'Minutid, + sek +' Sekundite hoiatus ('Time Up') document.questionForm.minute.value = 0 document.questionForm.second.value = 0 dokument .questionForm.submit ()} if (parseInt (sec) == 0) {document.getElementById ('showtime'). internalHTML = 'Järelejäänud aeg:' + min + 'Minutid' + sec + 'Sekundid' min = parseInt (min ) - 1 sekund = 59 tim = setTimeout ('examTimer ()', 1000)}}}

Kuidas helistada Javascripti funktsioonile

Selle funktsiooni Javascript kutsumiseks kasutame kehamärgendi onload atribuuti.

Viktoriini aja esitamine eksamikontrollerile

Kui seni esitasime viktoriiniküsimuste vormi otse eksamikontrollerile, siis nüüd peame saatma ka taimeri parameetrid: minut ja sekund, nii et kui eksamikontroller kuvab järgmise küsimuse, peaks see kuvama ka õige järelejäänud aja. Selle saavutamiseks oleme vormi Javascripti abil käsitsi esitanud ja parameetrid min ja sec saatnud eksamikontrollerile.

Vormi esitamine Javascripti abil

Pange tähele, et kui kasutaja klõpsab järgmisel, eelmisel või lõpul nupul customSubmit (), käivitatakse Javascripti funktsioon.

$ {choice} 

0} '>

Aja ületamine

Kui viktoriini kestus on möödas, teisisõnu, kui nii minut kui ka sekund muutuvad nulliks. Näitame hoiatuskasti, milles öeldakse „Time Up“, määrame minutite ja sekundite väärtuse nulli ning esitame vormi.

if (parseInt (min) == 0 && parseInt (sec) == 0) {document.getElementById ('showtime'). internalHTML = 'Järelejäänud aeg:' + min + 'Minutid', + sek + 'Sekundid' hoiatus ('Aeg Üles ') document.questionForm.minute.value = 0 document.questionForm.second.value = 0 document.questionForm.submit ()}

Peame koodi muutma, nii et eksam saab lõpule, kui eksami tähtaeg on möödas.

muidu if ('Lõpeta eksam' võrdub (tegevus) || (minut == 0 && sekund == 0)) {viimistlus = õige int tulemus = eksam.calculateResult (eksam) request.setAttribute ('tulemus', tulemus) taotlus .getSession (). setAttribute ('currentExam', null) request.getRequestDispatcher ('/ WEB-INF / jsps / result.jsp'). edastamine (taotlus, vastus)}

Nii saab eksami lõpetada kas klõpsates otse nupul Lõpeta või kui eksami tähtaeg on möödas (nii minut kui ka sekund saavad nulliks).

See on selle postituse jaoks kõik. Järgmises postituses laiendame oma viktoriinirakendust veelgi ja lisame uue funktsiooni, et kasutaja saaks oma vastused üle vaadata ja teada saada, millised küsimused ta valesti tegi ja millised olid õiged vastused.

kuidas logerit Java-s kasutada

Nagu alati, saate koodi alla laadida, muuta seda oma äranägemise järgi. See on parim viis koodist aru saada. Kui teil on küsimusi või taotlusi, kommenteerige neid allpool.

Koodi allalaadimiseks klõpsake nuppu Laadi alla.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.

Seonduvad postitused: