В настоящее время я создаю приложение виртуализации Rails с таймером, который отсчитывает оставшиеся секунды, чтобы ответить на вопрос.Создание таймера обратного отсчета в Rails, который сбрасывается на backend
В своей первой версии, я сделал это простой способ: создать переменную для таймера, экземпляр для секунд, а затем делает его часть Javascript викторины, как и так:
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();
}
Я бы теперь нужно переместить это на бэкэнд с помощью Rails. В предыдущем вопросе ссылается на countdown gem, но это, кажется, представляет два вопроса:
1) Мне нужно будет многократно называть дату/время и проверять для каждого вопроса (что я не думаю, что могу делать с обратным отсчетом) а также;
2) В идеале я мог бы передать это значение в Javascript как переменную.
В документации к этому драгоценному камню показано, как вы можете напрямую передать время обратного отсчета в представление. Тем не менее, я использую значение обратного отсчета времени (другими словами, когда он достигнет нуля), чтобы заставить пользователя к следующему вопросу во время записи неправильный ответ, как показано ниже, как часть моей проверки:
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();
})
}}
Любые идеи о том, как я могу «проверить» время на бэкэнд, но при этом проверять викторину, чтобы убедиться, что время не закончилось?