解决方案 »

  1.   

    利用ajax调用服务器端的时间即可如果js客户端实现 用户一刷新就重新开始了。
      

  2.   

    以下是我的帮助但不知道是否对你有帮助
    问题1
    当考生点击第一页,那么计时器便开始计时,当考生点击到下一页时触发一个事件,将考生编号与当前所用时间一起保存到Cookie,等到第二页打开后,立即从Cookie中读取前面所用时间开始计时。
    问题2
    当考试设置时间到时,可做一个弹出框,将焦点聚焦到此弹出框。
      

  3.   

    谢谢大家的回答,我会试试的,都很有用,我现在的想法就是如果有好几页的题目,都放到一个Form里面
    ,然后一起提交到后台阅卷,我现在的问题不是一个页面的数据可以放到一个Form里面吗?
    感谢大家跟帖帮忙
      

  4.   


    如果是页面切换的话,
    你可以把数据保存在服务器端的session,
    或者在当前页面的隐藏控件里面。
    当然这样的话在页面切换的时候需要向服务器提交数据。简单的话,
    可以不进行页面的切换,
    将不同的面的数据放在不同的DIV中。
    然后通过控制DIV的隐藏和显示来模拟页面切换的效果。对于计时的处理。
    最好是在服务器端和客户端同进行进行确认。
    实现方法,
    在开始测试的时候,
    向服务器端提出申请,
    通知服务器端开始考试计时。
    在结束的时候进行考试时间的确认。
    在客户端实时的进行计时和显示。如果只在客户端做的话,不安全。
      

  5.   

    非常感谢楼上的回复,在客户端做计时确实非常不安全,页面一刷新又重新开始计时了,
    但是如何既能在页面动态显示剩余时间,又能保证在考试重复刷新页面的时候不会重新计时,
    难道要在数据库里面增加字段?关于那个DIV模拟不同页面具体该如何弄呢?谢谢指教
      

  6.   

    <html>
    <head>
    <title>倒计时</title>
    <style>
    .time{color:#ffffff;font-family:verdana,geneva,helveticafont-size:9pt}
    a:link{text-decoration:none;color:#000000}
    a:active{text-decoration:none;color:#000000}
    a:visited{text-decoration:none;color:#000000}
    a:hover{text-decoration:none;color:#000000}
    </style><script language="javascript">var time_now_server,time_now_client,time_end,time_server_client,timerID;time_end=new Date("Jan 20, 2002 00:00:00");
    time_end=time_end.getTime();time_now_server=new Date("Dec 21, 2001 13:11:1");
    time_now_server=time_now_server.getTime();time_now_client=new Date();
    time_now_client=time_now_client.getTime();time_server_client=time_now_server-time_now_client;setTimeout("show_time()",1000);function show_time()
    {
    timer.innerHTML =time_server_client; var time_now,time_distance,str_time;
    var int_day,int_hour,int_minute,int_second;
    var time_now=new Date();
    time_now=time_now.getTime()+time_server_client;
    time_distance=time_end-time_now;
    if(time_distance>0)
    {
    int_day=Math.floor(time_distance/86400000)
    time_distance-=int_day*86400000;
    int_hour=Math.floor(time_distance/3600000)
    time_distance-=int_hour*3600000;
    int_minute=Math.floor(time_distance/60000)
    time_distance-=int_minute*60000;
    int_second=Math.floor(time_distance/1000)

    if(int_hour<10)
    int_hour="0"+int_hour;
    if(int_minute<10)
    int_minute="0"+int_minute;
    if(int_second<10)
    int_second="0"+int_second;
    str_time="<font style='font-size:14pt;color:#28C84A'>"+int_day+"</font><font face='黑体' style='font-size:13pt;'>天</font><br>"+int_hour+":"+int_minute+":"+int_second;
    timer.innerHTML=str_time;
    setTimeout("show_time()",1000);
    }
    else
    {
    timer.innerHTML ="over";
    clearTimeout(timerID)
    }
    }
    </script>
    <style>
    .time{color:#000000;font-family:verdana;font-size:9pt}
    </style>
    </head><BODY BGCOLOR=#FFFFFF topmargin=2 leftmargin=2>
    <div id="Layer1" style="position:absolute; width:160px; height:187px; z-index:1">
    <!-- begin calendar -->
      <table width=160 border=0 cellpadding=0 cellspacing=0>
        <tr> 
          <td colspan=3> </td>
        </tr>
        <tr> 
          <td width="47"> </td>
          <td background="images/mail_03.gif" width="67" valign="top">
            <table width=65 cellpadding=3 cellspacing=0 border=0>
              <tr> 
                <td align=center class="time">
                  <a href="http://203.212.7.76:8000/Announcement.html" target=_blank><div id="timer" style="font-size:9pt;color:red"></div></a>
                </td>
              </tr>
            </table>
          </td>
          <td width="46"> </td>
        </tr>
        <tr> 
          <td colspan=3> </td>
        </tr>
      </table>
        <!-- end calendar -->
    </div>
    </BODY>
    </HTML>
      

  7.   


    其实,所说的客户端不安全,
    不是指画面刷新。
    对于计时的实现,
    是在开始的时候计算出结束的时间,
    因此在开始测试的时候需要向服务器提交这个时间,
    交把这个时间保存起来。
    建议保存到数据库中。
    客户端的结束时间保存到cookie中就可以了。
    需要注意的是,由于服务器和客户端机器时间可能不同,
    因此保存的时间也就可能是不同的。
    不过这没关系。
    客户端和服务器端分别计算就可以了。因此所说的不安全,
    主要是指用户可以通过修改本地时间,
    或者通过script修改网页状态来作弊。
    因此在提交答卷的时候,
    服务器端要用到之前保存的时间与提交时服务器系统时间进行确认。
    如果超出有效时间则视为作弊,考试成绩无效。至于分页显示,
    只要把每页的信息放在不同的DIV中,
    并控制DIV的显示/隐藏就可以了。