我是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