倒计时写好了,但是会被刷新,每次刷新时间就被倒置了,很烦。
想办法啊,想办法!!!!!!
我遇到的无数困难和走的弯路,就不提了。在这里我想总结性的说一说我是怎么解决考试时间倒计时问题的。
首先我会获取你进入考试的时间:
var comein = (new Date()).valueOf()+2* 60 * 60 * 1000;
但是聪明的你发现了,后面的那一串式子是做什么的?
这是我觉得很精妙的地方,我上来获得的就是你最迟最迟交卷的时间,即开卷后的两个小时后!!!
将这个值储存到数据库,先不用。
然后怎么做呢?
如何让在页面上有一个倒计时呢?
来个式子:最迟交卷的时间-考生当前时间==?
答案是:正好等于我们要的倒计时。
怎么做呢?
var nowtime = (new Date()).valueOf();//获得考生当前时间
利用jutils.getTimeInterval(nowtime,comein )函数,这里给一个连接,我也是参考的:
https://zhidao.baidu.com/question/498218669.html
返回值就是我们要的倒计时,已经帮你写的好的不能再好了!!
接下来的问题就是让他一秒刷新一次,显示在页面。没了。!!!ru
结束了吗?。。。没有!!!
这样写,有一个bug,考生假如重新进入考试,comein 会被再次重写!!!虽然考生在考试页面刷新,时间继续流失!
怎么解决!
对于进入考试的考生进行判断:
function button() {
<%
Student ss1=(Student)request.getAttribute("sc");
if(ss1.getComin()==null){
%>
var comein = (new Date()).valueOf()+2* 60 * 60 * 1000;
$.ajax({
url: '../user/comein.do',
type: 'post',
data: "comein="+comein,
success :function (result) {
if (result=="yes") {
alert("进入考试成功!");
location.href="../main/index.do";
}else {
alert("进入考试失败!");
}
}
});
<%}%>
<%if(ss1.getComin()!=null)
{
%>
alert("检测到您还有一场为完成的考试,将会继续!");
location.href="../main/index.do";
<%}%>
}
呜呜呜呜呜!!!长舒一口老气!TM的!终于写好了!