本人最近在用ext做一个网上考试系统,在考试界面上加个计时器倒计时,并且刷新页面后时间是接下去计算的,不是重新计算的,各位大牛可有思路否?谢谢!

解决方案 »

  1.   

    把时间存储全局变量中,如果每个考生的倒计时是独立的就存Session或 都一致的就放Application 中。客户端通过js 每秒发出 Ajax 请求一次 刷新时间。 
      

  2.   

    ajax实时从服务器上取回数据,进行倒计时计算处理后返回到客户端显示
      

  3.   

    var examTime;
    function CountDown(){//计时器
    if(examTime>=0){
    hour = Math.floor(examTime/3600);
    minutes = Math.floor(examTime/60)%60;
    seconds = Math.floor(examTime%60);
    msg = "<div style='color:red;'>距考试结束还有"+hour+"小时"+minutes+"分"+seconds+"秒</div>";
    document.getElementById('timer').innerHTML = msg;
    --examTime;
    window.name = examTime; 
    }else{
    clearInterval(timer);
    Ext.Msg.alert(':(','时间到,考试结束!',function(btn){
    if(btn){
    submit();
    }
    });
    }
    }
    function setExamTime(time){
    if(window.name==''){
    examTime = time
    }else{
    examTime = window.name;
    }
    var self=this;
    timer = setInterval(function(){self.CountDown();},1000);
    }