Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chrome&;中没有运行计时器JavaScript;窗口最小化时的Mozilla_Javascript_Timer - Fatal编程技术网

Chrome&;中没有运行计时器JavaScript;窗口最小化时的Mozilla

Chrome&;中没有运行计时器JavaScript;窗口最小化时的Mozilla,javascript,timer,Javascript,Timer,大家好,我使用的是Java脚本计时器,它在IE中运行良好,但在Chrome中,当窗口最小化时,它会变得太慢,在Mozilla中,它会停止计时器。有人能提出什么建议吗?我的代码如下:- <html> <head> <script> var millisec = 0; var seconds = 0; var timer; function display(){ if (millisec>=9){ millisec=0 seco

大家好,我使用的是Java脚本计时器,它在IE中运行良好,但在Chrome中,当窗口最小化时,它会变得太慢,在Mozilla中,它会停止计时器。有人能提出什么建议吗?我的代码如下:-

<html>
<head>
<script>

var millisec = 0;
var seconds = 0;
var timer;

function display(){

  if (millisec>=9){
     millisec=0
     seconds+=1
  }
  else
     millisec+=1
     document.d.d2.value = seconds + "." + millisec;
     timer = setTimeout("display()",100);
  }

function starttimer() {

  if (timer > 0) {
    return;
  }
  display();    
}
function stoptimer() {
  clearTimeout(timer);
  timer = 0;
}

function startstoptimer() {
  if (timer > 0) {
     clearTimeout(timer);
     timer = 0;
  } else {
     display();
  }
}

function resettimer() {
    stoptimer();
    millisec = 0;
    seconds = 0;
}



</script>
</head>
<body>
<h5>Millisecond Javascript Timer</h5>
<form name="d">
<input type="text" size="8" name="d2">
<input type="button" value="Start/Stop" onclick="startstoptimer()">
<input type="reset" onclick="resettimer()">
</form>

</body></html>

var毫秒=0;
var秒=0;
无功定时器;
函数显示(){
如果(毫秒>=9){
毫秒=0
秒+=1
}
其他的
毫秒+=1
document.d.d2.value=秒+“+”毫秒;
定时器=设置超时(“显示()”,100);
}
函数starttimer(){
如果(计时器>0){
返回;
}
显示();
}
函数stoptimer(){
清除超时(计时器);
定时器=0;
}
函数startstoptimer(){
如果(计时器>0){
清除超时(计时器);
定时器=0;
}否则{
显示();
}
}
函数resettimer(){
停止计时器();
毫秒=0;
秒=0;
}
毫秒Javascript定时器

您不能使用
setTimeout
创建可靠的计时脚本

John Resig解释了JavaScript计时器的工作原理:

简短的版本是,总有一个小的延迟。传递给
setTimeout
的毫秒参数是“最大努力”


如果你想展示一个实时计时器,考虑一下经常轮询时间。如果事件循环速度减慢,则不会影响您跟踪时间的能力,您只会得到较少的更新


var定时器,时间=0,启动时间=0;
函数startstoptimer(){
中频(定时器){
时间+=新日期().getTime()-开始时间;
开始时间=0;
清除间隔(计时器);
定时器=空;
}否则{
开始时间=新日期().getTime();
定时器=设置间隔(函数(){
document.d.d2.value=时间+新日期().getTime()-开始时间;
}, 10);
}
}
函数resettimer(){
时间=0;
开始时间=新日期().getTime();
document.d.d2.value=“0”;
}

请参阅。对Firefox不太清楚。认识到
setTimeout(“display()”,100)
最好写成
setTimeout(display,100)
(无括号!),这很有用。JavaScript将评估
“display()”
,这是您不需要的低效。我尝试调用logout(),当计时器值为9000毫秒时,它将第一次执行,但此后不会注销。
<script type="text/javascript">
var timer, time = 0, start_time = 0;
function startstoptimer() {
    if (timer) {
        time += new Date().getTime() - start_time;
        start_time = 0;
        clearInterval(timer);
        timer = null;
    } else {
        start_time = new Date().getTime();
        timer = setInterval(function () {
            document.d.d2.value = time + new Date().getTime() - start_time;
        }, 10);
    }
}
function resettimer() {
    time = 0;
    start_time = new Date().getTime();
    document.d.d2.value = "0";
}
</script>

<form name="d">
    <input type="text" size="8" name="d2"/>
    <input type="button" value="Start/Stop" onclick="startstoptimer()"/>
    <input type="reset" onclick="resettimer()" />
</form>