पर रीसेट में रेल में एक उलटी गिनती टाइमर बनाना, मैं वर्तमान में एक टाइमर के साथ एक रेल क्विज़ एप्लिकेशन बना रहा हूं जो प्रश्न का उत्तर देने के लिए छोड़े गए सेकंड को गिना जाता है। सेकंड के लिए टाइमर के लिए एक चर, उदाहरण बनाकर, और फिर इसे प्रश्नोत्तरी के जावास्क्रिप्ट का हिस्सा बना रही है, इसलिए जैसे:बैकएंड
Quiz = function() {
this.quizCurrent = 0;
this.score = 0;
this.seconds = 10;
this.timing = this.seconds;
this.container = $('#trivia');
this.participationId = null;
}
Quiz.prototype.init = function() {
$('#trivia').on('click', '.btn.btn-primary-questions', this.checkAnswer.bind(this));
$('div.timer strong').text(this.seconds)
this.start();
}
मैं करूंगा
मेरा पहला संस्करण में, मैं इस एक आसान तरीका किया अब इसे रेल का उपयोग करके बैकएंड में ले जाना पसंद है। एक पिछला प्रश्न countdown gem का संदर्भ देता है, लेकिन ऐसा लगता है कि दो समस्याएं मौजूद हैं:
1) मुझे बार-बार तारीख/समय पर कॉल करने और प्रत्येक प्रश्न के लिए मान्य करने की आवश्यकता होगी (जो मुझे नहीं लगता कि मैं उलटी गिनती के साथ कर सकता हूं) तथा;
2) मैं आदर्श रूप से इस मान को जावास्क्रिप्ट में एक चर के रूप में पास कर सकता हूं।
उस मणि के लिए प्रलेखन में, यह दिखाता है कि आप सीधे उलटी गिनती समय को कैसे देख सकते हैं। हालांकि, मैं उलटी गिनती मूल्य उपयोग कर रहा हूँ (दूसरे शब्दों में, जब यह शून्य हो जाती है) अगले प्रश्न के लिए उपयोगकर्ता के लिए मजबूर करने, जबकि, एक गलत जवाब रिकॉर्डिंग नीचे की तरह, मेरी मान्यता के हिस्से के रूप:
Quiz.prototype.timer = function() {
var that = this;
this.timing--;
$('div.timer strong').text(this.timing);
if (this.timing <= 0) {
self.stop();
$.getJSON('/api/skip_question/' + this.participationId, function() {
that.nextQuestion();
})
}}
कोई भी विचार बैकएंड पर समय को "चेक" कैसे कर सकता है, जबकि अभी भी क्विज़ जांच कर रहा है यह सुनिश्चित करने के लिए कि समय समाप्त नहीं हुआ है?