javascript - 当浏览器不活动时 jQuery 和 setTimeout 停止工作

标签 javascript jquery internet-explorer firefox

我有一些 jQuery 代码,每 6 秒执行一次。

使用 Mozilla Firefox 51.0.1 可以正常工作。在 Internet Explorer 11 中,它似乎工作得很好,但是当我离开计算机,执行其他操作,然后返回时,Internet Explorer 11 可能已停止运行该脚本。例如,几个小时后。也就是说,不再是每6秒执行一次了。没有可用的错误消息。

我该如何解决这个问题?

<script src="/jquery-3.0.0.min.js"></script>

<script type="text/javascript">
<!--

$(document).ready(function(){

  valvonta = function() {
    var kaavio = 106; // 38;

    var a = performance.now();

    jQuery.post("hae_tilanteet.php", {
      kaavio: kaavio
    }).done(function(data) {
      var b = performance.now();

      $('#valvonta').html(data);

      var c = performance.now();

      // alert('search ' + (((b - a)/1000)%60) + ' s and update ' + (((c - b)/1000)%60) + ' s');

      setTimeout(valvonta, 6000);
    });
  };

  setTimeout(valvonta, 6000);

});

//-->
</script>

最佳答案

感谢@GOTO0,我修改了原来的代码。现在在我看来,以下代码可以解决我的问题。

$(document).ready(function(){
  var vasen = 0;

  setInterval(function() {
    vasen++;

    $('#valvonta').stop(true,true).css("left", vasen);

    var kaavio = 106; // 38;

    var a = performance.now();

    jQuery.post("hae_tilanteet.php", {
      kaavio: kaavio
    }).done(function(data) {
      var b = performance.now();

      $('#valvonta').html(data);

      var c = performance.now();

      // alert('search ' + (((b - a)/1000)%60) + ' s and update ' + (((c - b)/1000)%60) + ' s');
    });
  }, 6000);
});

关于javascript - 当浏览器不活动时 jQuery 和 setTimeout 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43776326/

相关文章:

javascript - 窗口clearInterval()在没有参数的情况下工作

javascript - IE 中未定义的 selectedIndex

php - Netbeans IDE 的自定义主题?

javascript - React - 单击按钮从外部 API 函数获取

javascript - 无法获得 JS 验证以响应

javascript - 选择一个复选框并禁用其他复选框

jquery - 在 jQuery 中,完全完成调整大小后如何销毁 resizing() 功能?

javascript - foreach() 触发 'Uncaught RangeError: Maximum call stack size exceeded'

javascript - 将 select2 的结果移动到另一个 div

jquery-ui - DIV 上的单击事件在 IE 中不起作用