我是Rails的新手,我正在开发在线测验的示例应用程序。如何在测验中包含“计时器控制”应用程序
我已经成功开发了应用程序。现在我想为我的应用程序添加时序约束。
但是,我不知道如何给计时器添加问题。我浏览了各种博客,但找不到合适的答案。
但我在AJAX和JavaScript中发现了很多用于定时器的编码。
让我知道我们可以或不可以在rails上写定时器控件吗?
我想让你的指导完成我的第一个应用程序。
我是Rails的新手,我正在开发在线测验的示例应用程序。如何在测验中包含“计时器控制”应用程序
我已经成功开发了应用程序。现在我想为我的应用程序添加时序约束。
但是,我不知道如何给计时器添加问题。我浏览了各种博客,但找不到合适的答案。
但我在AJAX和JavaScript中发现了很多用于定时器的编码。
让我知道我们可以或不可以在rails上写定时器控件吗?
我想让你的指导完成我的第一个应用程序。
我有疯狂的测验应用程序。我的应用程序有一个模型来存储测验,例子的时序:
Quiz table attribute :
- time -> integer
Timer Table attribute :
- start_quiz -> Datetime
- end_quiz -> Datetime
- end_timing_quiz -> Datetime
- finished -> boolean
- user_id -> integer
- quiz_id -> integer
Illustartion:
管理员做一个测验,并把time
竞猜(以分钟为单位)。
当用户将获得竞猜中,time
计算与DateTime.now
,然后保存到end_timing_quiz
def start_quiz
@quiz = Quiz.find(params[:id]
# check if user started of quiz.
if Timer.where(:quiz_id => @quiz.id, :user_id => current_user.id).empty?
@now = DateTime.now
@end = @now + @quiz.time.minutes
@time = Timer.create(:quiz_id => @quiz.id, :user_id => current_user.id, :start_quiz => @now, :end_timing_quiz => @end, :finished => false)
else
@time = Time.where(:quiz_id => @quiz.id, :user_id => current_user.id).first
end
end
而且在视图中可以使用jQuery Countdown,并从@time
<%= javascript_include_tag "countdown" %>
<div class="countdown"></div>
<script type="text/javascript">
$(document).ready(function() {
var date = new Date('<%= @time.end_timing_quiz %>'.replace(/\-/g,'\/').replace(/[T|Z]/g,' '));
$('.countdown').countdown({
until: date,
format: 'dHMS'
});
});
</script>
因此,获得的时间结束,即使用户在测验过期前离开测验或浏览器重新加载,定时器仍然倒计时,用户也无法控制定时器。
对不起,如果这真的是一个不好的解释。希望这将有助于
像应用测验,我建议你保持timestamp
当测验呈现页面,并使用该timestamp
再次使用setimeout from jquery到警报形成用户将submitted.For 服务器端所有你需要的是有一个专门的列用于存储timestamp
当页面呈现。您可以通过使用在客户端的设置timestamp
一个隐藏字段值和使用jquery
用它在你的页面。例如像这样fiddle ...你也可以参考http://keith-wood.name/countdown.html和coundown gem并精确使用它来实现定时器功能。 希望它帮助.....
我会尝试与我的应用程序伙伴的想法。 – 2014-10-18 10:47:00
它给了我一个很好的推动。我会用我的应用程序来检查。 – 2014-10-18 10:46:17