JavaScript atpakaļskaitīšanas taimera ieviešana tiešsaistes viktorīnas lietojumprogrammā

Šī detalizētā rokasgrāmata, kā ieviest JavaScript atpakaļskaitīšanas taimeri tiešsaistes viktorīnas lietojumprogrammai, palīdzēs jums izpildīt atpakaļskaitīšanas taimeri. JavaScript ir valoda

Šajā ziņā mēs paplašināsim mūsu viktorīnas lietojumprogrammu un pievienosim tajā JavaScript atpakaļskaitīšanas taimera funkcionalitāti. Vēl viena lieta, ko mēs šeit ieviesīsim, ir koda pievienošana, lai katrai viktorīnai varētu būt atšķirīgs jautājumu skaits. Ja jūs vēl neesat izlasījis pirmo daļu, es jums iesaku to iziet. Jums būs vieglāk sekot šim ierakstam un pilnībā to saprast.



Pirmo daļu varat izlasīt šeit .Jūs varētu arī paplašināt savas leņķiskās karjeras iespējas, uzņemoties .

JavaScript atpakaļskaitīšanas taimeris

Katras viktorīnas ilgums tiek saglabāts viktorīnas XML failā, mēs izgūstam viktorīnas ilgumu un saglabājam to lietotāja sesijā kā atribūtu. Kad lietotājs iesniedz jautājumu, mēs arī iesniedzam laiku kontrolierim, izmantojot pielāgotu veidlapu iesniegšanu ar JavaScript. Tātad, parādot nākamo jautājumu, mēs parādīsim pareizo atlikušo laiku.

javascript-countdown-timer-online-quiz-application



Kad viktorīnas ilgums ir beidzies, lietotājam tiks parādīts brīdinājuma lodziņš ar tekstu “Time Up” un viktorīna tiks novērtēta, un tiks parādīts galīgais rezultāts.

Kā konvertēt bināro decimāldaļu Java

Apskatīsim, kas mums ir nepieciešams, lai to panāktu.



Pirms viktorīnas jautājumiem esam pievienojuši divas jaunas rindas viktorīnas XML failā.

Java viktorīna (2015/01/18) 10 2 Kura ir pareizā sintakse? publiskā klase ABC paplašina QWE paplašina studentu int i = 'A' virkne s = 'sveika' privātā klase ABC 2 Kurš no šiem a nav Java atslēgvārds? klases interfeiss paplašina abstrakciju 3 Kas ir taisnība par Java? Java ir platformai raksturīga Java neatbalsta vairāku mantojumu Java nedarbojas Linux un Mac Java nav daudzvalodu valoda 1 Kurš no šiem ir interfeiss? Thread Runnable Date Calendar 1 Kurš uzņēmums izlaida Java versiju 8? Kurā valodu kategorijā ietilpst Sun Oracle Adobe Google 1 Java? Pirmās paaudzes valodas Otrās paaudzes valodas Trešās paaudzes valodas Ceturtās paaudzes valodas 2 Kura ir noklusējuma pakete, kas ir automātiski redzama jūsu programmai? java.net javax.swing java.io java.lang 3 Kurš WEB-INF ieraksts tiek izmantots servleta kartēšanai? servletīklu kartēšana servletu reģistrācija servletu ievadīšana servletu pielikums 0 Kāds ir Java datu tipa int garums? 32 biti 16 biti 64 biti Runtime specific 0 Kāda ir Java datu veida būla noklusējuma vērtība? patiess viltus 1 0 1

Taimera iestatīšana, uzsākot jaunu eksāmenu

Kad lietotājs sāk jaunu eksāmenu, kā atribūtu lietotāja sesijā mēs iestatām kopējo jautājumu skaitu un viktorīnas ilgumu.

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

Atskaites laiks

Pēc katras sekundes mums ir jāsamazina taimeris, lai to izdarītu, mēs izveidosim Javascript funkciju, kas vispirms tiks izsaukta, kad tiek ielādēta eksāmena lapa, un pēc tam šo funkciju mēs rekursīvi izsauksim pēc katras sekundes, lai atskaitītu laiku.

Javascript funkcija, lai atskaitītu laiku

var tim var min = '$ {sessionScope.min}' var sec = '$ {sessionScope.sec}' var f = new Date () funkcija customSubmit (someValue) {document.questionForm.minute.value = min document.questionForm. second.value = sec document.questionForm.submit ()} funkcija examTimer () {if (parseInt (sec)> 0) {document.getElementById ('showtime'). internalHTML = 'Atlikušais laiks:' + min + 'Minūtes' + sec + 'Sekundes' sec = parseInt (sec) - 1 tim = setTimeout ('examTimer ()', 1000)} else {if (parseInt (min) == 0 && parseInt (sec) == 0) {document.getElementById ('showtime'). internalHTML = 'Atlikušais laiks:' + min + 'Minūtes, + sek + brīdinājums par sekundēm (' Time Up ') document.questionForm.minute.value = 0 document.questionForm.second.value = 0 dokuments .questionForm.submit ()} if (parseInt (sec) == 0) {document.getElementById ('showtime'). internalHTML = 'Atlikušais laiks:' + min + 'Minūtes', + sek + 'Sekundes' min = parseInt (min ) - 1 sekunde = 59 tim = setTimeout ('examTimer ()', 1000)}}}

Kā izsaukt Javascript funkciju

Tagad, lai izsauktu šo Javascript funkciju, mēs izmantosim ķermeņa taga onload atribūtu.

Viktorīnas laika iesniegšana eksāmenu kontrolierim

Līdz šim viktorīnas jautājumu veidlapu mēs iesniedzām tieši eksāmenu kontrolierim, bet tagad mums ir jānosūta taimera parametri: minūte un sekunde arī tā, lai, eksāmenu kontrolierim parādot nākamo jautājumu, tajā būtu jāparāda arī pareizs atlikušais laiks. Lai to panāktu, veidlapu esam iesnieguši manuāli, izmantojot Javascript, un min un sec parametrus nosūtiet eksāmenu kontrolierim.

Veidlapas iesniegšana, izmantojot Javascript

Ņemiet vērā, ka, kad lietotājs noklikšķina uz nākamās, iepriekšējās vai pabeigšanas pogas, tiks izsaukta JavSkript funkcija Javascript.

$ {choice} 

0} '>

Darbs ar laiku

Kad viktorīnas ilgums ir beidzies, citiem vārdiem sakot, kad minūte un sekunde kļūst nulle. Mēs parādām brīdinājuma lodziņu, kurā teikts “Time Up”, un minūtes un sekundes vērtību iestatām uz nulli un iesniedzam veidlapu.

if (parseInt (min) == 0 && parseInt (sec) == 0) {document.getElementById ('showtime'). internalHTML = 'Atlikušais laiks:' + min + 'Minūtes', + sek + 'Sekundes' brīdinājums ('Laiks Augšup ') document.questionForm.minute.value = 0 document.questionForm.second.value = 0 document.questionForm.submit ()}

Mums ir jāmaina kods, lai eksāmens tiktu pabeigts, kad būs beidzies eksāmena termiņš.

cits, ja ('Pabeigt eksāmenu'. ir vienāds (darbība) || (minūte == 0 && sekunde == 0)) {pabeigt = patiess int rezultāts = eksāmens.kalkulētRezultāts (eksāmens) pieprasījums.setAttribūts ('rezultāts', rezultāts) pieprasījums .getSession (). setAttribute ('currentExam', null) request.getRequestDispatcher ('/ WEB-INF / jsps / result.jsp'). pārsūtīt (pieprasījums, atbilde)}

Tātad eksāmenu var pabeigt, tieši noklikšķinot uz pogas Pabeigt, vai arī tad, kad eksāmena termiņš ir beidzies (gan minūte, gan sekunde kļūst nulle).

kā izmantot paketes Java

Tas ir viss šim ierakstam. Nākamajā ierakstā mēs vēl vairāk paplašināsim viktorīnas lietojumprogrammu un pievienosim jaunu funkciju, lai lietotājs varētu pārskatīt savas atbildes un uzzināt, kurus jautājumus viņš ir kļūdījies un kādas bija pareizās atbildes.

Kā vienmēr jūs varat lejupielādēt kodu, mainīt to pēc savas izvēles. Tas ir labākais veids, kā saprast kodu. Ja jums ir kādi jautājumi vai pieprasījumi, lūdzu, komentējiet tālāk.

Noklikšķiniet uz pogas Lejupielādēt, lai lejupielādētu kodu.

Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā, un mēs ar jums sazināsimies.

Saistītās ziņas: