易考———让考试更简单(3)

倒计时写好了,但是会被刷新,每次刷新时间就被倒置了,很烦。
想办法啊,想办法!!!!!!
我遇到的无数困难和走的弯路,就不提了。在这里我想总结性的说一说我是怎么解决考试时间倒计时问题的。
首先我会获取你进入考试的时间:

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的!终于写好了!

发布了29 篇原创文章 · 获赞 1 · 访问量 686

猜你喜欢

转载自blog.csdn.net/weixin_44414413/article/details/102632029