JS的时钟是用的加载JS的容器的时钟,这样就会被加速软件影响到JS的计时,怎样避免这种情况,或者直接在js中屏蔽掉加速软件的影响呢?  例如:      timer = window.setInterval("onTimer()", 3000);我想3秒调一次onTimer函数,但是开了加速软件后调用速度也相应加快了,我的后台是C#,可以取服务器的时间,应该怎么写这段js的代码呢?

解决方案 »

  1.   

    获取服务器上的时间,然后想减来调用onTimer()函数,绕开加速软件
      

  2.   

    思路是这样的,还是采取setInterval来定时调用,但是onTimer函数中做些处理。onTimer中获取本地时间,和上次获得的本地时间进行对比,如果大于等于3秒才执行你onTimer原来要做的事
      

  3.   

    补上代码
    //全局变量t
    var t = 0;
    function onTimer(){
      if(t==0){
        t = Date();
      }
      else{
        t = Date()-t;
        if(t>=3000)
        {
          //你原来的onTimer逻辑
        }
      }
    }
      

  4.   

    其实还是会有影响的,就不说别的了,如果手动更改本地时间你就没办法搞了,主要是看你的这个onTimer要处理的是什么事件,客户端的大多数东西不太可靠的....
      

  5.   

    t = Date()-t; 得出来是nan,这是什么原因呢?两次的时间都取出来了,可是计算出来是nan,这是什么原因呢?
      

  6.   

    sorry
    获取应该new一个对象出来
    var t = new Date();
    new Date()-t
      

  7.   

    ok,成功了,还是有些时间差的,自己慢慢调整限制条件吧,结贴了,向您学习,js很强大!