如何用java在后台页面开发一个计时器
问题描述:
主要用于考试系统计时,时间结束,页面自动提交到服务器求各位大神帮忙讲一下,我是一个初学者,谢谢大家了!
答
直接前台获取js的倒计时就可以了,但是保险一点的话,后台也可以同时计时,通知前台自动提交试卷。
答
客户端轮询服务器时间,到点提交就可以了。
答
用js做个计时器,时间到了就发送请求到后台,后台实现具体的业务就可以啦。
js倒计时百度下好多现成的代码。
答
如果用java语言,可以用 java.util.Timer 这个类。
大概代码如下:
public class TimerTest {
public static void main(String[] args){
Timer timer=new Timer();
Date firstTime=new Date();
long period=5000; //5s
timer.schedule(new MyTask(), firstTime, period);
//schedule有几个不同的重载方法
while(true){
Scanner scan=new Scanner(System.in);
String flag=scan.nextLine();
if("exit".equals(flag)){
timer.cancel();
break;
}
}
}
}
class MyTask extends java.util.TimerTask{
@Override
public void run() {
// TODO Auto-generated method stub
//你要执行的任务
System.out.println("action--"+new Date());
}
}
时间到了,通知前台。
答
用JS做定时器就行了
var s = 59;//用来记录秒,因为需求是从59开始的。
var m = residueTime-1;//用来记录分钟
var w = setInterval(function() {
s--;
if (s == -1) {//当秒减到0时,分钟减1,秒钟从60开始。
m--;
s = 59;
}
span.innerHTML = m + ":" + (s < 10 ? "0" + s : s); //显示时间(秒小于10时,前补0)
/* if (m % 2 == 0 && s == 0 && m > 0) {
//保存答题结果和时间
submitExam(m,"1");
} */
if (s % 30 == 0 ) {
//保存答题结果和时间
submitExam(m,"1");
}
if (m == 0 && s == 0) { //提交试卷
submitExam(m,"2");
} //到过5分钟时停止
if(m < 0){
submitExam(m,"2");
}
}, 1000);
答
服务器端 记录答题者开始答题动作 服务器时间。客户端 js 定时。提交后 根据服务提交时间 与开始时间比较。看有没“开挂”。