Javascript 轨道3中的倒计时时钟
我正在开发一个测试引擎web应用程序。用户将有一定的时间回答问题。我想创建一个倒计时时钟,测试结束后再倒计时。我现在正在使用javascript,但在浏览器中面临刷新和后退按钮的问题。 以下是javascript:Javascript 轨道3中的倒计时时钟,javascript,ruby-on-rails,ruby-on-rails-3,Javascript,Ruby On Rails,Ruby On Rails 3,我正在开发一个测试引擎web应用程序。用户将有一定的时间回答问题。我想创建一个倒计时时钟,测试结束后再倒计时。我现在正在使用javascript,但在浏览器中面临刷新和后退按钮的问题。 以下是javascript: <script> function countDown (count) { if (count > 0) { var hours = Math.floor(count/3600) var minutes = Math.floor(co
<script>
function countDown (count) {
if (count > 0) {
var hours = Math.floor(count/3600)
var minutes = Math.floor(count/60) - (hours*60)
var seconds = count - (minutes * 60) - (hours*3600)
var d = document.getElementById("countDiv");
d.innerHTML = hours + ":" + minutes + ":" + seconds;
else
document.location = "test_finished.html";
}
countDown(<%=@totaltime%>);
</script>
函数倒计时(计数){
如果(计数>0){
var小时=数学楼层(计数/3600)
var分钟=数学楼层(计数/60)-(小时*60)
var秒数=计数-(分钟*60)-(小时*3600)
var d=document.getElementById(“countDiv”);
d、 innerHTML=小时+“:”+分钟+“:”+秒;
其他的
document.location=“test_finished.html”;
}
倒计时();
如何禁用刷新和后退按钮或其他解决方法???您不能使用JavaScript强制执行此类操作
一种方法是在数据库中保存测试开始日期时间的记录,一旦用户开始测试,设置开始时间,在加载时使用它计算初始计时器值,这样您就可以使“返回”和“刷新”正常工作,并且倒计时器始终准确。您无法可靠地禁用“返回”按钮和“刷新”按钮n或刷新。如果用户这样做,只需再次启动测试。与使用需要与rails后端通信的数据库不同,您可以将启动时间写入浏览器会话。但是,这可能很容易欺骗,因此db方法可能更好。我会按照Tomas说的做,使用ajax调用检查remai每10秒计算一次时间,剩余时间作为返回,并更新时钟(仍然使用js以正常方式继续倒计时),如果时间已过,则提交表单或其他内容。