【问题标题】:Timer pause automatically when I move to other screen当我移动到其他屏幕时,计时器会自动暂停
【发布时间】:2013-07-18 06:16:20
【问题描述】:

我使用 html 5 和 jquery 在我的应用程序上设置了一个计时器。现在,当我转到其他选项卡或最小化窗口时,那几秒钟的计时器会停止。当我再次打开窗口(标签或浏览器页面,无论你说什么)时,计时器启动。但它会暂停那几秒钟。应该是什么问题?我应该为它写什么代码?

获取计时器的代码是:

这里设置了计时器并开始运行,但只要我将焦点移到其他页面,计时器就会暂停。这里只是展示了一个函数。

function showTime()
{
    if(ms>=100){
        ms = 0;
        s++;
    }
    // calculates seconds and hours also

    var temp= $("#clock").text(checkTime(h)+":"+checkTime(m)+":"+checkTime(s)+"."+checkTime(ms));
    timer=setTimeout('showTime()', 10);
}

checktime 是一个在数字前加零的函数

【问题讨论】:

  • 1) 显示代码。 2)您不能依靠计时器精确运行。如果需要,请获取需要测试经过时间的日期,而不是仅依赖 setInterval 或 setTimeout
  • @mplungjan 我添加了代码
  • StackOverflow 上有很多关于这个的帖子。 [这个][1] 例如。 [1]:stackoverflow.com/questions/12536627/…
  • 为什么不使用 setInterval 而不是递归 setTimeout?
  • 我应该何时使用设置间隔以及何时设置超时??

标签: performance jquery-ui jquery


【解决方案1】:

如果您希望以固定间隔调用函数,请使用 setInterval

 setInterval(showTime, 10);//calls showTime every 10 miliseconds

【讨论】:

  • 不,它不起作用,秒移动非常快,而且通过停止代码,它现在不会停止。
  • 一秒有 1000 毫秒。不是 100
  • 好的,但是当我在不同的屏幕上移动时,计时器停止,然后稍后恢复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多